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.

Mehmet Salih Deveci

Bilgisayar Mühendisi

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s