C# Windows Forms PictureBox Kullanımı ve Örnek Fotoğraf Görüntüleyici
Windows Forms uygulamalarında resimleri forma eklemek ve görüntülemek için PictureBox kontrolü kullanılır. Örneğin bir öğrenci fotoğrafı, ürün görseli veya seçilen bir resmi ekranda göstermek istediğimizde PictureBox'tan yararlanabiliriz.
Bu makalede Visual Studio'da PictureBox kullanmayı öğrenecek ve kullanıcının bilgisayarından bir resim seçerek ekranda görüntüleyebileceği basit bir Fotoğraf Görüntüleyici uygulaması tasarlayacağız. Uygulamaya ayrıca resmi temizlemek için bir buton ekleyeceğiz.
1. PICTUREBOX NEDİR?
PictureBox, Windows Forms formu üzerinde resim görüntülemeyi sağlayan bir kontroldür. PictureBox içerisine tasarım aşamasında bir resim eklenebilir veya program çalışırken kullanıcıdan alınan bir dosya ekranda gösterilebilir.
Örneğimizde PictureBox başlangıçta boş olacak. Kullanıcı GÖRSEL SEÇ butonuna tıkladığında bilgisayarındaki bir resim dosyasını seçecek ve seçilen resim PictureBox içerisinde görüntülenecektir.
2. PICTUREBOX'IN ÖNEMLİ ÖZELLİKLERİ
PictureBox kontrolünün görünüşünü ve resmin nasıl yerleştirileceğini Properties penceresinden ayarlayabiliriz.
| Özellik |
Görevi |
Örneğimizdeki Değer |
| Name |
Kontrolün kod içinde kullanılacak adını belirler. |
pictureBox1 |
| Image |
PictureBox içerisinde görüntülenecek resmi belirler. |
Boş bırakılacak |
| SizeMode |
Resmin PictureBox alanına nasıl yerleşeceğini belirler. |
Zoom |
| BorderStyle |
PictureBox çevresindeki kenarlığın görünümünü belirler. |
FixedSingle |
| BackColor |
Resim bulunmadığında görünen arka plan rengini belirler. |
WhiteSmoke |
SizeMode özelliği resmin nasıl gösterileceğini belirler. Bu özellik için en çok kullanılan seçenekler şunlardır:
- Normal: Resmi kendi gerçek boyutunda gösterir. Resim PictureBox alanından büyükse tamamı görünmeyebilir.
- StretchImage: Resmi PictureBox alanını tamamen dolduracak şekilde genişletir. Resmin en-boy oranı değişebilir ve görüntü bozulabilir.
- AutoSize: PictureBox kontrolünün boyutunu resmin gerçek boyutuna göre ayarlar.
- CenterImage: Resmi PictureBox alanının ortasında, gerçek boyutuyla gösterir.
- Zoom: Resmi en-boy oranını koruyarak PictureBox alanına sığdırır. Resmin tamamı görünür ve görüntü bozulmaz.
Örneğimizde farklı boyutlardaki fotoğrafların tamamının görünmesini istediğimiz için SizeMode değerini Zoom yapacağız.
3. FOTOĞRAF GÖRÜNTÜLEYİCİ TASARIMI
Uygulamamızda sol tarafta büyük bir PictureBox, sağ tarafta dosya bilgisi ve işlem butonları bulunacaktır. Formun üst kısmında uygulamanın adını göstereceğiz.

Örnek form tasarımı: Solda seçilen resmi gösteren PictureBox, sağda dosya bilgisi ile görsel seçme ve temizleme butonları yer alır.
| Form Bölümü |
Yerleşim ve Görevi |
| Üst başlık |
Formun üst kısmında “FOTOĞRAF GÖRÜNTÜLEYİCİ” başlığı |
| Sol bölüm |
Yaklaşık 500 × 320 boyutlarında, seçilen resmi gösterecek PictureBox |
| Sağ bölüm |
“Görsel Bilgisi” başlığı, dosya adını gösterecek Label ve iki işlem butonu |
| İşlem butonları |
“GÖRSEL SEÇ” ve “GÖRSELİ TEMİZLE” |
Formu daha anlaşılır hâle getirmek için başlığı üstte, PictureBox'ı sol tarafta ve işlem alanını sağ tarafta konumlandırın. Formun başlığını Fotoğraf Görüntüleyici yapabilir, boyutunu yaklaşık 820 × 520 olarak ayarlayabilirsiniz.
4. VISUAL STUDIO'DA KONTROLLERİ EKLEME
Visual Studio'da bir Windows Forms App (C#) projesi oluşturun ve Form1 tasarım ekranını açın. Toolbox bölümünden aşağıdaki kontrolleri forma ekleyin:
| Kontrol |
Name |
Text / Özellik |
Görevi |
| Label |
lblBaslik |
FOTOĞRAF GÖRÜNTÜLEYİCİ |
Uygulama başlığını gösterir. |
| PictureBox |
pictureBox1 |
Image boş, SizeMode: Zoom |
Seçilen resmi gösterir. |
| Label |
lblDosyaAdi |
Henüz resim seçilmedi. |
Seçilen dosyanın adını gösterir. |
| Button |
btnResimSec |
GÖRSEL SEÇ |
Resim seçme penceresini açar. |
| Button |
btnTemizle |
GÖRSELİ TEMİZLE |
PictureBox içerisindeki resmi kaldırır. |
| OpenFileDialog |
openFileDialog1 |
Görünür bir Text değeri yoktur. |
Bilgisayardan resim dosyası seçmemizi sağlar. |
OpenFileDialog, form çalışırken dosya seçme penceresi açar. Bu kontrol form üzerinde görünür bir bileşen değildir. Toolbox'tan forma eklendiğinde tasarım ekranının altındaki bileşen alanında görünür.
Kontrolleri ekledikten sonra her birini seçin ve Properties penceresindeki (Name) özelliğini tabloda verilen adlarla eşleştirin. Kodlarda kontrol adları kullanılacağı için bu isimlerin doğru yazılması önemlidir.
5. GÖRSEL SEÇ BUTONUNUN KODLARI
Form tasarımında GÖRSEL SEÇ butonuna çift tıklayın. Visual Studio, butonun Click olayını oluşturacaktır. Aşağıdaki kodu oluşan btnResimSec_Click metodunun içine yazın:
private void btnResimSec_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Bir resim seçin";
openFileDialog1.Filter = "Resim Dosyaları|*.jpg;*.jpeg;*.png;*.bmp;*.gif";
openFileDialog1.Multiselect = false;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Image yeniResim;
// Kaynak resmi yükle ve dosya bağlantısını serbest bırak.
using (Image kaynakResim = Image.FromFile(openFileDialog1.FileName))
{
yeniResim = new Bitmap(kaynakResim);
}
// Önceden gösterilen resmi bellekten kaldır.
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
}
pictureBox1.Image = yeniResim;
lblDosyaAdi.Text = Path.GetFileName(openFileDialog1.FileName);
}
}
Bu kodda Image ve Bitmap sınıfları için kod dosyasının en üstünde using System.Drawing;, Path.GetFileName için ise using System.IO; satırlarının bulunması gerekir. Yeni Windows Forms projelerinde bazı using satırları otomatik eklenebilir. Eksik olanları elle ekleyebilirsiniz.
Filter özelliği dosya seçme penceresinde hangi uzantıların görüntüleneceğini belirler. Örneğimizde JPG, JPEG, PNG, BMP ve GIF dosyalarını seçilebilir hâle getirdik.
DialogResult.OK, kullanıcının bir dosya seçip Aç düğmesine bastığını gösterir. Kullanıcı pencereyi iptal ederse resim yükleme kodları çalıştırılmaz.
Image.FromFile ile açılan dosya, resim nesnesi kullanılmaya devam ettiği sürece kilitli kalabilir. Kodda resmi yeni bir Bitmap nesnesine kopyalayıp kaynak resmi using bloğunda kapatıyoruz. Böylece seçilen görsel ekranda kalırken dosyanın başka işlemler için kullanılabilmesi sağlanır.
6. GÖRSELİ TEMİZLE BUTONUNUN KODLARI
Form tasarımında GÖRSELİ TEMİZLE butonuna çift tıklayın ve oluşan Click metoduna aşağıdaki kodları yazın:
private void btnTemizle_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
lblDosyaAdi.Text = "Henüz resim seçilmedi.";
}
PictureBox'taki resmi yalnızca null yapmak yerine önce Dispose() ile kapatıyoruz. Bu işlem, artık kullanılmayan resmin bellekte tuttuğu kaynakların serbest bırakılmasına yardımcı olur.
7. PROGRAMIN ÇALIŞMA ADIMLARI
-
Programı başlatın.
-
GÖRSEL SEÇ butonuna tıklayın.
-
Açılan pencereden JPG, PNG veya desteklenen başka bir resim dosyası seçin.
-
Seçilen resmin PictureBox içerisinde, oranı bozulmadan görüntülendiğini kontrol edin.
-
Dosya adının yan bölümdeki Label üzerinde gösterildiğini kontrol edin.
-
GÖRSELİ TEMİZLE butonuna tıklayarak resmi kaldırın.
8. SIK YAPILAN HATALAR
- Kontrol adlarının kodla uyuşmaması: Kodda kullanılan Name değerleri formdaki kontrol adlarıyla aynı olmalıdır.
- SizeMode değerinin ayarlanmaması: Resim PictureBox alanına beklenmedik şekilde sığabilir veya bir bölümü görünmeyebilir. Bu örnekte Zoom kullanın.
- OpenFileDialog eklemeden kod yazmak: Formda openFileDialog1 adlı bileşen yoksa bu adla ilgili hata alınır.
- Gerekli using satırlarını eklememek: Image, Bitmap veya Path tanınmıyorsa ilgili ad alanlarının eklendiğini kontrol edin.
- Eski resmi kapatmamak: Yeni bir resim yüklemeden önce önceki Image nesnesini Dispose etmek, bellek kaynaklarının düzenli kullanılmasına yardımcı olur.
- Resim filtresini hatalı yazmak: Filter içindeki uzantıları nokta ve yıldız işaretleriyle doğru biçimde belirtin.
9. ÖĞRENCİLER İÇİN GELİŞTİRME ETKİNLİKLERİ
Fotoğraf Görüntüleyici uygulamasını tamamladıktan sonra aşağıdaki geliştirmeleri deneyebilirsiniz:
- Bir ÖNCEKİ RESİM ve SONRAKİ RESİM butonu ekleyin.
- Seçilen resmin dosya adının yanında genişlik ve yükseklik bilgilerini gösterin.
- PictureBox'ın SizeMode değerini Normal, StretchImage ve Zoom seçenekleriyle değiştirip sonuçları karşılaştırın.
- Resmi temizlemeden önce kullanıcıya onay soran bir MessageBox ekleyin.
- Form açılırken belirli bir klasördeki resimleri listeleyip seçilen resmi görüntüleyin.
10. SONUÇ
Bu uygulamada Windows Forms üzerindeki PictureBox kontrolünü kullanarak seçilen bir resmi ekranda gösterdik. OpenFileDialog ile dosya seçme penceresi açtık, SizeMode = Zoom ayarıyla resmin oranını koruduk ve butonların Click olaylarında resim yükleme ile temizleme işlemlerini gerçekleştirdik.
PictureBox; fotoğraf görüntüleme, ürün tanıtımı, profil ekranı ve görsel seçimi gibi birçok Windows Forms uygulamasında kullanılabilir. Bu örnek, PictureBox kontrolünü diğer form elemanlarıyla birlikte kullanmaya başlamak için temel bir uygulamadır.