Sono appena tornato da un viaggio negli Stati Uniti, e dopo la modifica di tutte le immagini, ho notato che la fotocamera utilizzata il fuso orario di Israele, e non l'americano. C'è una differenza di tempo di 7 ore, quindi è un grosso problema per me. Ho 175 GB di foto, ma mi interessa "solo" circa 350 foto. Non posso modificare manualmente i loro EXIF, quindi ho pensato di usare C#.Modifica "DateTaken" di una foto
L'idea è che leggerà EXIF di ciascuna foto, ottenere il tempo, e impostare il tempo di meno di 7 ore nella foto originale. Ho provato ad usare la classe Image, ma non funziona. Ho provato a utilizzare il bitmapMetadate e ha funzionato! Sono riuscito a ottenere il tempo e fare meno sette ore, ma non ho idea di come salvarlo. Come posso farlo? Grazie!
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;
}
Grazie! Sei un genio! – GINCHER