C# ile bir foto nun çekilme tarihini nasıl öğrenebiliriz?

Kodla Büyü

spider23

Süper Üye
Süper Üye
Mesajlar
1,890
Selamlar bir proje geliştiriyorum;biitnce paylaşıcağım..
yalnız şöyle bir sıkıntı var,fotoğraf dosyalarının oluşturma tarihi-yazılma tarihi vs..ye erişebiliyorum ancak fotoğrafın çekildiği tarihe erişemiyorum...
ve bazı fotolarda bu tarihler farklı..
C# ta bunun için bir sınıf var mı??
 
using System.Text;
using System.Drawing;
using System.Globalization;

public DateTime CekilmeTarihiniGetir(string dosyaYolu)
{
Bitmap image = new Bitmap(dosyaYolu);
PropertyItem test = image.GetPropertyItem(0x132);
ASCIIEncoding a = new ASCIIEncoding();
string tarih = a.GetString(test.Value, 0, test.Len - 1);
CultureInfo provider = CultureInfo.InvariantCulture;
return DateTime.ParseExact(tarih, "yyyy:MM:d H:m:s", provider);
}

// test
DateTime tarih = CekilmeTarihiniGetir("C:\\resim.jpg");
// dosya yolunu openfiledialogdan da cekebilirsiniz
MessageBox.Show(tarih.ToString("dd.MM.yyyy HH:mm:ss");

http://stackoverflow.com/questions/1689 ... ge-c-sharp sayfasindaki ornegi modifiye ettim fakat denemedim bilginize
 
L3Oy4b.jpg



fotoya bakarsanız 13.07.2014 tarihine erişmem lazım ancak diğer tarihlere erişebiliyorum..
 
Parhelion' Alıntı:
hmm bunun exif okudugunu dusunmustum ama degil sanirim. o zaman bir de su kutuphane var hocam buyuk ihtimal sorunu cozecektir http://www.codeproject.com/Articles/363 ... or-NET-2-0
hocam ilginize teşekkürler..gönderdiğiniz linkte kini kıvıramadım altta ki gibi bir metot bulup çok az bi uyarlama yaptım çalıştı...yine forumda sizler gibi hocalarımız olmasına sevindim..çok teşekkürler..
public DateTime CekilmeTarihiniGetir(string dosyayolu)
{
//Property Item 36867 corresponds to the Date Taken
Image targetImg = new Bitmap(dosyayolu);
PropertyItem propItem = targetImg.GetPropertyItem(36867);
DateTime dtaken;

//Convert date taken metadata to a DateTime object
string sdate = Encoding.UTF8.GetString(propItem.Value).Trim();
string secondhalf = sdate.Substring(sdate.IndexOf(" "), (sdate.Length - sdate.IndexOf(" ")));
string firsthalf = sdate.Substring(0, 10);
firsthalf = firsthalf.Replace(":", "-");
sdate = firsthalf + secondhalf;
dtaken = DateTime.Parse(sdate);
return dtaken;
}
 
Geri
Üst