|  | 
        
            | 
                    
                        | GDI+ ile Resim Görüntüleme(C++.NET) |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | Bu makalede size, Gdi+ kütüphanesini kullanarak herhangi bir 
					formattaki resmin nasıl görüntüleneceğini göstermeye çalışacağım.Uygulamaya 
					geçmeden önce Gdi+ kütüphanesinin işimize yarayacak sınıflarından ve 
					fonksiyonlarından bahsetmek istiyorum. 
 Gdi+ kütüphanesini kullanarak bir resmi görüntülemek için iki tane 
					sınıf kullanabilirsiniz. Bunlar
					Image
					ve 
  Bitmap sınıflarıdır.Image 
  ve Bitmap sınıflarının arasındaki 
  fark ise Bitmap sınıfının 
  işlevinin daha fazla, yani sınıfın kullanım alanının 
  daha geniş olmasıdır.Aşağıdaki örnekte Image 
  sınıfı kullanılarak jpg formatındaki bir resim dosyasının nasıl görüntülenebileceğini görebilirsiniz.
 
 
 
				Burada görüldüğü gibi Image sınıfı jpg formatı gibi, birçok resim 
					formatını tanır. DrawImage
					ve
					Image 
  sınıfının yapıcı fonsiyonunun prototipi şu şekildedir:
					| Image image("resim.jpg"); graphics.DrawImage(&image, 20, 10);
 
 
 
 |  
 
 
				Birinci parametrede
					Image
					sınıfından türetmiş olduğumuz nesnenin adresini, ikinci ve üçüncü parametrede 
					ise resmin çizilmeye başlanacağı koordinatları istemektedir.
					| //DrawImage fonksiyonu 
						
						Status DrawImage( Image *image, INT x,
 INT y
 );
 
 //Image sınıfının yapıcı fonksiyonu
 
 Image( const WCHAR *filename,
 BOOL useEmbeddedColorManagement
 );
 
 
 
 |  
 Aşağıdaki örnekte de Bitmap
					sınıfı kullanarak resource da tanımlanmış bir ikonun nasıl okutulacağını 
					görebilirsiniz.
 
 
 
				Şimdi küçük uygulamamıza geçebiliriz.
					| HICON hIcon = LoadIcon(NULL, IDI_ZEK); Bitmap bitmap(hIcon);
 graphics.DrawImage(&bitmap, 0, 0);
 
 
 
 |  
 
   
 
   
 Uygulamamız yukarıdaki şekilde görüldüğü gibi olacaktır. Ac butonuna 
					basıldığında dialog açılacak ve seçtiğmiz resim
					PictureBox
					ta görüntülenecektir. Ayrıca picturebox boyutları, resmin boyutlarına göre 
					ayarlanacaktır. Uygulamamızı yazmaya başlayalım.
 
 İlk olarak dialog tabanlı bir mfc projesi oluşturuyoruz. Sonra geçen 
					makalede bahsettiğimiz
					
						(www.csharpnedir.com
					) Gdi+ kütüphanesini kullanmak için gerekli olan adımları yapıyoruz.
 
 Projeyi oluşturduktan sonra dialoğumuza bir picture kontrolü 
					ekliyoruz ve bir ID değeri veriyoruz. Bu kontrole bağlı
					CStatic 
  sınıfından m_resim isminde bi nesne türettikten sonra, seçtiğimiz 
					dosyanın ismini tutmak için
					CString
					sınıfından
					m_DosyaIsmi adında bir nesne oluşturuyoruz
 
 Şimdi kodumuzu yazalım. Bunun için Aç ismini verdiğimiz buttonun 
					click mesajı içerisine şu kodları yazıyoruz:
 
 
 
				Burada açacağımız resmi seçmek için CFileDialog
					sınıfından bir nesne türetiyoruz ve bu açılan dosyanın ismini
					m_DosyaIsmi
					isimli değişkenimize aktarıyoruz. Sonrada
					Image
					sınıfından nesnemizi oluşturup dosyayı açıyoruz, genişlik ve yükseklik 
					değerlerine göre kontrolümüzün boyutlarını belirliyoruz. Ayrıca dialog her 
					hareket ettirildiğinde tüm çizim sıfırlanacağı için, çizim işlemini
					Paint
					mesajı içerisinde yapıyoruz. Şimdi aşağıdaki kodu paint mesajı içerisine 
					ekleyelim:
					| //OnBnClickedAc fonksiyonu içi 
 CString strFilter = "Resim Dosyaları (bmp.gif.jpg)|*.bmp;gif;jpg|BMP 
								(*.bmp)|*.bmp|GIF (*.gif)|*.gif|JPG (*.jpg)|*.jpg|Tüm Dosyalar (*.*)|*.*||";
 CFileDialog OpenFileDialog(TRUE, NULL, NULL, OFN_HIDEREADONLY , strFilter);
 
 
 if(OpenFileDialog.DoModal() == IDOK)
 {
 m_DosyaIsmi=OpenFileDialog.GetFileName();
 
 Image bm(m_DosyaIsmi.AllocSysString());
 m_resim.MoveWindow(0,0,bm.GetWidth(),bm.GetHeight());
 
 }
 
 
 
 
 
 |  
 
 
				Burada dosyadan bir resim açıp açmadığımızı kontrol ediyoruz, 
					açılmışsa kontrolün üzerine çizim yapmak için
					GetDC()
					fonksiyonu ile dc değerini alıyoruz ve resmimizi kontrolün üstüne çiziyoruz.
					| //OnPaint mesajı 
 if(!m_DosyaIsmi.IsEmpty())
 {
 
 CDC* dc=m_resim.GetDC();
 Graphics grp(dc->m_hDC);
 Image bm(m_DosyaIsmi.AllocSysString());
 grp.DrawImage(&bm,0,0);
 }
 
 
 
 
 
 |  
 Bu örneğimizin de sonuna geldik. SİZE İYİ ÇALIŞMALAR....
 
 Örnek uygulama projesini indirmek 
							için tıklayın.
 
 Zeki Yuğnak
 Erciyes Üniversitesi
 Elektronik Mühendisliği
 
 
 
 
 
 
                Makale:GDI+ ile Resim Görüntüleme(C++.NET) C++ ve C++.NET dili Zeki Yuğnak
 | 
        
            |  | 
        
            |  | 
        
            | 
                    
                        
                            
                        
                            Eklenen Son 10 
                            Bu Konuda Geçmiş 10 
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                            Son Eklenen 10 Makale Yükleniyor
                         
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         | 
        
            |  |