C# 3.0 PictureBox’da PhysicalDimension, PixelFormat ve FrameDimension Özellikleri

Yağız Gönüler tarafından yayınlanmıştır 17. Nisan 2009 07:33

Yine içerisinde sürpriz konu barındıran bir makaleyle C# 3.0’a devam ediyorum.

Bu makalemde amacım PictureBox’a koyduğumuz bir resmin özelliklerini edinmek. Makalenin ilerleyen paragraflarında çok farklı ve işe yarar bir konudan daha bahsedeceğim.

Öncelikle Windows formumuza bir picturebox, 5 label ve 5 textbox ekliyorum. Görüntü aşağıdaki gibi olmalıdır:



Çok sevdiğim bir kitabın kapağını resim olarak ekledim PictureBox’ıma. Şimdi gelelim kodlara. Formumuzun load özelliği dahilinde aşağıdaki kodları yazıyorum;

private void Form1_Load(object sender, EventArgs e)

{

float genislik = pictureBox1.Image.PhysicalDimension.Width;

float yukseklik = pictureBox1.Image.PhysicalDimension.Height;

textBox1.Text = genislik.ToString();

textBox2.Text = yukseklik.ToString();

string piksel_sayi = pictureBox1.Image.PixelFormat.ToString();

textBox3.Text = piksel_sayi.ToString();

System.Drawing.Image resim;

resim = pictureBox1.Image;

textBox4.Text = resim.HorizontalResolution.ToString();

textBox5.Text = resim.VerticalResolution.ToString();

}

İlk ve ikinci textboxa, Picturebox’ın barındırdığı resmin genişliğini ve yüksekliğini yazdırdım. Sonrasında PixelFormat özelliğinden yararlanarak üçüncü textboxa resmin renk sayısını yazdırdım. Son olarak ise System.Drawing sınıfından yararlanarak resmin yatay ve dikey çözünürlüklerini yazdırdım. Böylece picturebox’a atanan bir resmin detaylarını görebileceğiniz bir form oluşturmuş olduk.

Şimdi gelelim sürpriz konuya J

Bir Windows formuna yine picturebox ve bir textbox ekliyoruz. Bu sefer sabit bir resimle değil, hareketli bir .gif resmiyle ilgileneceğiz. Bildiğiniz gibi .gif resimleri birden çok kareden oluşturuluyor. Mesela dalgalanan bir Türk bayrağını düşünün. Kaç kareden oluştuğunu bulmak için yine formun load eventine aşağıdaki kodları yazıyoruz;


System.Drawing.Image resimresim = pictureBox1.Image;

System.Guid[] Anahtar;

Anahtar = resim.FrameDimensionsList;

System.Drawing.Imaging.FrameDimension boyut;

boyut = new System.Drawing.Imaging.FrameDimension(Anahtar[0]);

textBox6.Text = resim.GetFrameCount(boyut).ToString();


Bu kodla çalışma anında PictureBox’a atanan bir .gif resminin kaç kareden oluştuğunu öğrenebiliyoruz.

Kodda öncelikle resimresim adında bir değişken oluşturdum ve pictureboxdaki resmimi bu değişkene atadım. Daha sonra System.Guid sınıfından yararlanarak benzersiz bir anahtar oluşturdum ve Image sınıfının FrameDimensionList özelliğinin içeriğini bu anahtara aktardım. Resimde kaç kare olduğunu GetFrameCount() metodu ile öğrendim. Picturebox’a eklediğiniz resmin kaç kare olduğunu formunuzu çalıştırdığınızda textboxa yazıldığında öğreneceksiniz.


Umarım farklı bir konu üzerinde durmuşumdur. Farklı makalelerde tekrar görüşmek üzere, iyi çalışmalar.


Yağız Gönüler
yagizgonuler@gmail.com


Kaynaklar:

http://msdn.microsoft.com/en-us/library/system.drawing.image.physicaldimension.aspx

http://msdn.microsoft.com/en-us/library/system.drawing.image.pixelformat.aspx

http://msdn.microsoft.com/en-us/library/system.drawing.image.horizontalresolution.aspx

http://msdn.microsoft.com/en-us/library/system.drawing.image.verticalresolution.aspx

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.framedimension.aspx

Memik Yanık – Visual Studio 2008 ile Visual C# 3.0 For .Net Framework 3.5

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Makaleler | Yazılım Geliştirme | Windows

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Paslaş

Anket

Mesleğinizden arta kalan zamanınızı nelere harcıyorsunuz?







Sonuçlar

Calendar

<<  Eylül 2010  >>
PaSaÇaPeCuCuPa
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Yazıları geniş takvimde göster

Ne Dinliyorum?

Aziz TSM Grubu - Klarnet (5 gün önce)
Aziz TSM Grubu - Ud (5 gün önce)
Aziz TSM Grubu - Klarnet (5 gün önce)
Aziz TSM Grubu - Ud (5 gün önce)
Aziz TSM Grubu - Kanun (5 gün önce)
Aziz TSM Grubu - Klarnet (5 gün önce)
Aziz TSM Grubu - Ud (5 gün önce)
Aziz TSM Grubu - Ney (5 gün önce)
Aziz TSM Grubu - Ud (5 gün önce)
Aziz TSM Grubu - Kanun (5 gün önce)

Ne(ler) Okuyorum?

İstanbul'da Hava

ISTANBUL

Ziyaretçi Sayısı