C# ile Resimlerin NxN Biçiminde Boyutlandırılması

Merhaba Değerli Arkadaşlar Bu yazımda sizlere C# dilini kullanarak bir resmin nasıl boyutlandırıldığını anlatacağım. Resmin boyutlandırılmasının mantığını verdikten sonra  C# ta yazdığım resim boyutlama kodunuda vereceğim. 

Genel olarak her bir resmin  yüksekliği ve genişliği vardır. Resimler adlandırılırken örneğin 20 ye 30 luk bir resim dendiği zaman resmin yüksekliği 20 ve genişliği 30 olmaktadır. Buda bilgisayar biliminde modellendiği zaman 20×30 luk bir matris demektir. Yani yüksekliği 20 ve genişliği 30 olan bir resim modellenirken 20×30 luk bir matrisle temsil edilir. Matrisin her bir elemanı orijinal resimde bir pixeli temsil eder.


 

Resimlerin atom u niteliğindeki en küçük parçaları olan pixeller de görüntünün formatına göre genel anlamda 3 veya 4 renk bilgisi tutulmaktadır. En çok bilinen resim formatları olan Bmp ve Jpeg sırasıyla bir pixeli 3 ve 4 renk bilgisine bölmüşlerdir.

Her ikisinde kullanılan 3 renk bilgisi Kırmızı (Red),Yeşil (Green) ve Mavi (Blue) olmaktadır.Jpeg formatında buna ek olarak bir de Alfa denilen rengin parlaklık değeri tutulmaktadır.

Resimler boyutlandırılırken belirli bir orana göre ölçeklendirilirken aynı zamanda belli bir değere göre de yeni bir boyuta sahip olabilmektedir. Örneğin yukarıda belirtilen 20×30 luk bir resmi 10×15 lik bir resime boyutlandırılırken iki komşu pixelin renk değerlerinin ortalaması yeni resimde tek bir pixele verilecektir. Aynı şekilde belirli bir orana göre ölçeklendirilirken de bu pixellerin ortalama değerleriyle belirtilen yüzde değeri çarpılarak elde edilmektedir.

Resimlerin belirli bir oranla ölçeklendirilmesi ve belli bir değere göre boyutlandırılması yukarıda belirtilmiştir. Belli bir boyuttaki resmi kullanıcı tarafından belirlenen büyüklüğe dönüştürülme kodu C# dilinde aşağıda verilmiştir.

public Bitmap resizing(ref Bitmap myImage, int YeniBoyut)

{

int en = YeniBoyut;

int boy = YeniBoyut;

Bitmap bmp = new Bitmap(en, boy);

Graphics graphic = Graphics.FromImage((Image)bmp); 

graphic.DrawImage(myImage, 0, 0, en, boy); 

graphic.Dispose(); 

return bmp;

}

Yukarıdaki kod resmi kare boyutuna getirmektedir. Kodun başlangıcında olan En boy değerini farklı verildiğinde ise kullanıcının istediği MxN boyutunda bir resme yeniden boyutlandırır.

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi
İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Mehmet Salih Deveci

I am Founder of IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience. I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource. I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks. I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients. If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress mehmetsalih.deveci@outlook.com. -                                                                                                                                                                                                                                                 - Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  mehmetsalih.deveci@outlook.com a mail atabilirsiniz.