Aufnahmedatum & Uhrzeit aus EXIF-Daten einer JPG-Datei ermitteln
-
::: string dsn = ""; dsn = @"G:\F\Casio03270001.JPG"; //CASIO dsn = @"G:\F\Winkler100_1160.JPG"; // KODAK Image image = new Bitmap(dsn); PropertyItem[] propItems = image.PropertyItems; int AnzItems = propItems.Length; int i = 0; int vorh = 0; string Datum = ""; // jjjj.mm.tt string Zeit = ""; // hh:mm:ss while ((i < AnzItems) && (vorh == 0)) { if (((propItems[i].Id == 0x0132) || (propItems[i].Id == 0x9003) || (propItems[i].Id == 0x9004)) && (propItems[i].Len == 20)) { // Datum und Uhrzeit gefunden }
Ich habe für JPGs aus verschiedenen Kameras versucht zu erkennen, wie man den Aufnahme-Zeitstempel aus exif ermitteln kann. Dabei habe ich jeweils drei IDs gefunden, die Datum und Uhrzeit enthalten, jeweils im Format => tt : mm : jj hh : mm : ss /0
Allerdings gibt es Unterschiede der Kameras. In allen drei ID-Feldern sind identische Angaben, das kann Zufall sein.
ID = 0x0132 : CASIO, PENTAX, SAMSUNG-S7, SAMSUNG-A5 ( nicht bei KODAK )
ID = 0x9003 : CASIO, PENTAX, SAMSUNG-S7, SAMSUNG-A5, KODAK
ID = 0x9004 : CASIO, PENTAX, SAMSUNG-S7, SAMSUNG-A5, KODAKSind alle drei IDs relevant für Aufnahmedatum/-Uhrzeit.
-
Vielleicht helfen die Infos auf dieser Seite weiter:
https://exiftool.org/TagNames/index.htmlGruß
Michael
-
Der letzte Satz soll wohl eine Frage sein?
Es gibt im Internet ja verschiedene EXIF-Listen (z.B. Standard Exif Tags oder EXIF Tags).
Bei Digital-Kameras wirst du bei den drei Werten keinen Unterschied feststellen, da Erzeugung und Speicherung ja innerhalb einer Sekunde stattfinden.
Für Millisekunden gibt es dafür noch für jeden der drei Werte die Tags:0x9290 37520 Photo Exif.Photo.SubSecTime Ascii A tag used to record fractions of seconds for the <DateTime> tag. 0x9291 37521 Photo Exif.Photo.SubSecTimeOriginal Ascii A tag used to record fractions of seconds for the <DateTimeOriginal> tag. 0x9292 37522 Photo Exif.Photo.SubSecTimeDigitized Ascii A tag used to record fractions of seconds for the <DateTimeDigitized> tag.
-
@Th69, ja, das war eine Frage.
Dank Euerer Hinweise und Links habe ich Antworten gefunden0x0132 Exif.Image.DateTime Datum und Uhrzeit der Bilderstellung. Im Exif-Standard ist dies das Datum und die Uhrzeit, zu der die Datei geändert wurde. 0x9003 Exif.Image.DateTimeOriginal Datum und Uhrzeit der Generierung der Originalbilddaten. Bei einer digitalen Fotokamera werden Datum und Uhrzeit der Bildaufnahme aufgezeichnet. 0x9004 Exif.Photo.DateTimeDigitized Datum und Uhrzeit der Speicherung des Bildes als digitale Daten. 0x9290 Exif.Photo.SubSecTime Millisekunden für 0x0132 Exif.Image.DateTime 0x9291 Exif.Photo.SubSecTimeOriginal Millisekunden für 0x9003 Exif.Image.DateTimeOriginal 0x9292 Exif.Photo.SubSecTimeDigitized Millisekunden für 0x9004 Exif.Photo.DateTimeDigitized
0x0132 gibt es nicht bei allen Kameras. Hier ist u.U. ein abweichender Inhalt zu finden, wenn der Knipser mit Funktionen der Kamera, die nicht jede Kamera anbietet, an dem Bild etwas bearbeitet hat.
0x9003 könnte der Zeitpunkt sein, zu dem das Bild auf dem Chip aufgezeichnet wurde.
0x9004 ist wahrscheinlich der Zeitpunkt zu dem das Bild auf die Speicherkarte übertragen wurde.
0x9003 und 0x9004 sind = Aufnahmedatum und -Uhrzeit
0x0132 kann abweichen, wenn mit der Kamera nach der Aufnahme an dem Bild Änderungen vorgenommen wurden.