AW: Verlustlos Speichern - TIF / TIFF - und EXIF-Daten behalten
Hallo,
zu den oben besagten anderen Programmen. DxO kenne ich nicht, zumindest habe ich nicht selbst damit gearbeitet.
Zu Adobe-Produkten kann ich sagen: Man kann schon hin und her springen, man muss aber Verluste an Daten in Kauf nehmen. Die Herstellerdaten sind dann zumindest schon mal weg. Also nichts mehr mit Entzerren von Bildern mit eingebetteten Daten. Wenn die Objektivdaten nicht übertragen worden sind, was Adobe bei bekannten meist Objektiven ja macht, sind sie weg! Nichts mehr mit Gesichtserkennungsdaten, Fokusdaten etc. Weg ist weg.
Was man (auf die Schnelle) machen könnte: Beim Exportieren BIN-Dateien anlegen (oder direkt von RAW erzeugen), Dateigruppen in FF anlegen, wo die Dateien mit "*_exif.bin" verknüpft werden (Ich weiß momentan nicht, ob die Gruppen-Richtlinie mit solchen Daten arbeiten kann, könnte aber Joachim aber bestimmt hinbiegen.
Dann würde jede Dateiaktion, umbenennen, löschen etc die *_exif.bin"-Dateien ebenfalls betreffen. Beim Rückschreiben müsste es dann wieder funktionieren, wie Kuni geschrieben hat. Ob "Speichern Unter" (Quasi Umbennenen beim Speichern) Dateigruppen berücksichtigt, kann nur Joachim beantworten. Wünschenswert wäre es.
Ansonsten ist im Verbesserungs-Thread von Kuni eine Machbarkeitsstudie von mir beschrieben: 2 Hooks, einer beim Laden, einer beim Schreiben und Datentransfer über FixFoto oder Festplatte.
Eine globale Anmerkung:
So Geschichten wie: "Schreib mal bitte schnell eine Routine, die Exif in Tiff ein-/ausbaut ist sehr leicht gesagt/geschrieben."
Das Problem ist, dass anders wie in JPEG Exif nicht in einer anderen Datenstruktur eingebettet ist, sondern Tiff durchdringt! Exif ist nichts anderes als Metadaten in einer Tiffstruktur. Das heißt bei jedem Ex-/Import: Filtern von Feldern: Gehört das zu Tiff oder nicht. Nicht einfach bei mehreren hundert Tags(Feldern), wo halbjährlich was dazukommt (Maximum 65335 Definitionen). Manchmal ist nicht mal eindeutig ob ein Wert oder ein Zeiger auf Daten vorliegt, bei ExifIFDPointer und GPSIFDPointer weiß man es, weil es schon lange definiert ist. Ein alter Tiff-Reader kann jedoch nichts damit anfangen.
Die zweite Problematik bei Bildern sind die MakerNotes. Mal liegen Sie als eigenständige Tiffs vor(neuere Formate), mal als einzelne Verzeichnisstrukturen, mal abhängig von Originalstrukturen von Exif/Tiff und deren Position, mal vom Anfang der Definition oder einen um einen davon verschobenen Wert, mal mit der gleichen binären Zahlenkonvention, mal der alternativen. Dann gibt es noch rein binäre Daten, die, wenn man sie nicht lesen kann, von Haus aus bömische Dörfer sind; auch sie manchmal in Abhängigkeit von der Position innerhalb Exif/Tiff.
Jeder Kamera-Hersteller, hat mindestens 3-4 Metadatenformate und es gibt ja nicht nur 3 Hersteller. Ein Hersteller hat für jede Linie ein eigenes Format und für jeden größeren Versionssprung nochmal.
Darüber hinaus gibt es für Tiff noch zwei Metadatenformate: Exif nach Jeita und dann noch ISO-Tiff, die beinahe die gleichen, aber nicht absolut die gleichen Tag-Kennungen haben, abgesehen davon, wo die Daten hingeschrieben wurden. Klar gibt es Kennungen für solche Daten, aber wenn ein anderes Programm sie überschrieben oder schlicht ignoriert hat, frei nach den Motto: "Kenn ich nicht, also gibt's das nicht!"
Zu den Implementationen von Exif in Tiff der verschiedenen Hersteller kann ich nur eins sagen. Sie bringen einen teilweise zum Verzweifeln! Da werden teilweise willkürlich ganze Verzweigungen weg geschnitten, sogar in den gekapselten Formaten, wo sie eigentlich nicht weh täten. Ein Reader muss die Dateien trotzdem lesen können, ohne hops zu gehen. Wichtiger: Auch wieder richtig schreiben können. Die interne Leseroutine muss solche Daten auch noch überlesen können und weiter einlesen, wenn wieder normale Daten kommen, sonst fehlt die Hälfte. (Hatten wir schon bei Felder, die Adobe geschrieben hat mit der Datenlänge 0.)
Was bei Tiff noch beachtet werden muss: Tiff ist ein Kontainerformat, das sowohl Seiten als auch Variationen von Bildern beherrscht. Alles in einer Datenstruktur, die in sich geschlossen immer funktionieren muss. Ein kleiner Fehler und keiner kann die Datei bzw. Teile davon mehr lesen. Ein Beispiel dafür sind alte Sony-RAW-Dateien. Hier wird in der Datei mit der Tiff-Konvention gebrochen. Das ist z. B. ein Grund, warum ich nicht in RAW-Dateien schreibe. N.... bringt es z. B. fertig, mit seiner eigenen Software bei neuen Kameras beim Importieren von der Kamera seine Daten zu schrotten (Phil Harvey hat ein Bugfix dafür geschrieben). Zudem sind manche Werte verschlüsselt, auch Offsete. Will man den Block verschieben und kennt denn Schlüssel nicht, um Adressen anzupassen, geht's rund! Hurra es lebe Exif und die Herstellerinformationen!
Ich kann also Joachim ganz gut verstehen, dass er das Eisen derzeit nicht anfasst. Hätte ich den "Fehler" nicht bereits getan und wäre die Geschichte nicht über Jahre gewachsen, ich würde mir nicht die Finger daran verbrennen.
Denn immer wieder kommen neue Kameras auf den Markt. Da wird dann ein neuer Wert (Felddaten) in den MakerNotes geschrieben, somit sprengen die MakerNotes die 64K-Grenze und sind so für JPEGs nicht mehr brauchbar, können aber noch gut in Tiffs eingespeist werden, da es diesem Kontainerformat wurst ist. Beim Export muss ich die Datenstruktur aufbrechen, übergroße Tags, die in den normalen JPEGs nicht drin sind identifizieren und entfernen, damit ich einen JPEG-kompatiblen Exif-Block erzeugen kann. Das ist dann das Tröpfchen, dass das Fass dann zum Überlaufen bringt.