- 28 Mar 2020
- 6,325
- 120
- 4,807
Giriş
Merhaba, C# uygulama geliştirme serimizin onuncu yazısına hoş geldiniz.
Bu yazımızda görsellerdeki exif bilgilerini gösteren bir program yapacağız.
Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
Örnekler İle C# Geliştirme - Bölüm 7
Örnekler İle C# Geliştirme - Bölüm 8
Örnekler İle C# Geliştirme - Bölüm 9
İyi okumalar dilerim!
Yapılış
İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Exif Okuyucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Exif Okuyucu' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.
2 adet GroupBox
1 adet PictureBox
1 adet ListBox
1 adet Button
Tasarımı oluşturduktan sonra ise, sıra gerekli kütüphaneyi eklemek de.
Yüklemek için "NuGet" kısmına giriyoruz. Sonrasında "Gözat" yazan yere tıklıyoruz ve kütüphanemizin ismini (MetadataExtractor) giriyoruz.
İlk çıkana tıklıyoruz ve "Yükle" diyoruz.
Evet, tasarım ve kütüphane ekleme işlemleri tamam.
Şimdi ise kodumuza geçelim, bunun için buttonumuza çift tıklayabiliriz ya da F7'ye basabiliriz.
Koda girdikten sonra, ilk iş olarak kütüphanemizi aşağıdaki şekilde kodumuza ekliyoruz.
C#:
using MetadataExtractor;
using MetadataExtractor.Formats.Exif;
Şimdi ise buton kodumuza geçelim.
C#:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
// Bir adet OpenFileDialog nesnesi oluşturuyoruz. Bu bizim dosya açmamıza yarayan bir araçtır.
openFileDialog.Filter = "Image Files|*.jpg;*.jpeg;*.png;*.gif;*.bmp";
// Burada ise OpenFileDialog nesnemize filtre ekiyoruz. Bunun sayesinde sadece belirttiğimiz dosya türleri gözükecek.
if (openFileDialog.ShowDialog() == DialogResult.OK) // Burada açılan pencere de "ok" demiş miyiz ona bakıyor.
{
try
{
string imagePath = openFileDialog.FileName;
// openFileDialog.FileName ile dosya konumunu alıyor ve bir string değişkenine atıyor.
pictureBox1.Image = System.Drawing.Image.FromFile(imagePath);
// Burada ise pictureBox1 aracımızın içine resmi (konumu sayesinde) ekliyor.
AddExifInfoToListBox(imagePath);
// Exif bilgilerini Listbox1'e eklemek için kullanacağımız metodu çağırıyor.
}
catch (Exception ex)
{
MessageBox.Show("Resim yüklenirken bir hata oluştu: " + ex.Message);
// Burada da herhangi bir hata çıkarsa bunu ekrana yazdırıyor.
}
}
}
private void AddExifInfoToListBox(string imagePath)
{
listBox1.Items.Clear();
// İlk olarak lstbox1 içindeki değerleri temizliyoruz.
try
{
var directories = ImageMetadataReader.ReadMetadata(imagePath);
// Burada meta değerimizi bir değişkenin içine aktarıyoruz.
foreach (var directory in directories) // Burada ise değişken içindeki değerler kadar dönen bir döngümüz var.
{
foreach (var tag in directory.Tags)
{
listBox1.Items.Add($"{directory.Name} - {tag.Name} : {tag.Description}");
// Elde ettiğimiz değerleri ekrana yazdırıyoruz.
}
}
}
catch (Exception ex)
{
MessageBox.Show("Exif bilgileri okunurken bir hata oluştu: " + ex.Message);
// Burada da herhangi bir hata çıkarsa bunu ekrana yazdırıyor.
}
}
Sonuç
İşlem sonunda sonucumuz aşağıdaki gibi olacaktır.
İşlem sonunda sonucumuz aşağıdaki gibi olacaktır.
Kapanış
Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekteki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!
Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekteki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!