Ich kam gerade von einer Reise in die USA zurück, und nachdem ich alle Fotos bearbeitet hatte, bemerkte ich, dass die Kamera die israelische Zeitzone benutzte und nicht die amerikanische. Es gibt einen Zeitunterschied von 7 Stunden, also ist es ein großes Problem für mich. Ich habe 175GB Fotos, aber mir sind "nur" ungefähr 350 Fotos wichtig. Ich kann ihren EXIF nicht manuell bearbeiten, also habe ich über C# nachgedacht."DateTaken" eines Fotos ändern
Die Idee ist, dass es jedes Foto EXIF zu lesen, die Zeit bekommen, und die Zeit minus 7 Stunden im Originalfoto gesetzt. Ich habe versucht, die Image-Klasse zu verwenden, aber es funktioniert nicht. Ich habe versucht, das BitmapMetadate zu verwenden, und es hat funktioniert! Ich habe es geschafft, die Zeit zu bekommen und minus sieben Stunden zu machen, aber ich habe keine Ahnung, wie ich es speichern kann. Wie kann ich es tun? Vielen Dank!
public static string PhotoToBeEdited(FileInfo f)
{
FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.Read);
BitmapSource img = BitmapFrame.Create(fs);
BitmapMetadata md = (BitmapMetadata)img.Metadata;
string date = md.DateTaken;
Console.WriteLine(date);
DateTime dt= DateTime.Parse(date);
date = dt.AddHours(-7).ToString();
[...]
return date;
}
Danke! Du bist ein Genie! – GINCHER