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

Yorumlar



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

<<  Şubat 2012  >>
PaSaÇaPeCuCuPa
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

Yazıları geniş takvimde göster

Ne(ler) Okuyorum?


Ne Dinliyorum?

Bob Marley & The Wailers - Lively Up Yourself (3 saat önce)
Bob Marley & The Wailers - Jamming (3 saat önce)
Bob Marley & The Wailers - Is This Love (3 saat önce)
Bob Marley & The Wailers - Iron Lion Zion (3 saat önce)
Bob Marley & The Wailers - I Shot The Sheriff (3 saat önce)
Bob Marley & The Wailers - Get up,stand up (3 saat önce)
Bob Marley & The Wailers - Exodus (4 saat önce)
Bob Marley & The Wailers - Could You Be Loved (4 saat önce)
Bob Marley & The Wailers - Buffalo Soldier (4 saat önce)
Bob Marley & The Wailers - Africa Unite (4 saat önce)

İstanbul'da Hava

ISTANBUL

Ziyaretçi Sayısı