Ich arbeite gerade an einem großen Projekt mit Bildern. Eines der großen Probleme, die ich habe, ist mit der Endianz des Bildes (JPEG, um klarer zu sein). Ich habe immer gedacht, dass wir in unserer modernen Welt nicht über dieses Thema herummachen mussten, aber jetzt bin ich mir nicht sicher.
Was ich mache:
Diese Bilder werden dann in einem anderen Modul meiner Anwendung verwendet, die einen "Viewer" von Drittanbietern verwenden, der einige Manipulationen an dem Bild vornimmt. Der Viewer arbeitet mit allen Bildern, die mit dem Computer unter Windows XP und Windows Vista erstellt wurden. Aber wenn das Bild mit einem Windows 7-Rechner erstellt wird, sind die Bilder alle durcheinander.
Nehmen wir an, dass das mit Windows XP erstellte Bild PictureXP heißt und das mit Windows 7 erstellte Bild Picture7 heißen wird Ich habe die Dateien mit exiftools überprüft und festgestellt, dass es zwischen PictureXP und Picture7 2 Felder gab.
PictureXP: Exif-Byte-Reihenfolge: Little-Endian Bild7: Exif-Byte-Reihenfolge: Big-Endian Picture7 haben auch ein zusätzliches Feld: Benutzer Kommentar:.
Die zwei Bilder können normal in jedem Fotobetrachter geöffnet werden, nur in diesem Drittanbieterbetrachter erscheint das Bild durcheinander und der einzige Unterschied zwischen den drei Bildern sind diese Felder.
Was ich wissen möchte:
Vielen Dank!
EDIT 1 : Ich habe diesen Artikel gefunden, der bestätigt, dass endiannes, die in der Exif-Kopfzeile gefunden werden, gilt nur für die Exif-Kopfzeile und eine JPEG-Datei ist immer in Big-Endian. Also gibt es eine Möglichkeit, den Exif-Header zu ändern, so dass der Drittanbieter Soft lesen könnte, was er braucht?
Ok, also habe ich meine Antwort gefunden, indem ich Phil, dem Autor von exiftool <, eine Frage gestellt habe / p>
Sie können den Thread sehen, den ich mit ihm hier hatte
In der Befehlszeile:
exiftool -all= -tagsfromfile test.jpg -all:all -unsafe -exifbyteorder=little-endian test.jpg
Sie können auf dieser Seite .
Vielen Dank für Ihr Interesse an der Frage und der Antwort, die ich erhalten habe.
Ich denke, vielleicht liegt das Problem beim Benutzerkommentarfeld. Ich lese irgendwo , dass Windows Vista (und wahrscheinlich Windows 7) speichert das Benutzerkommentarfeld als Unicode in Little-Endian-Byte-Reihenfolge, unabhängig von der Byte-Reihenfolge der EXIF-Informationen. Da der einzige Unterschied zwischen PictureXP und Picture7 die Endianz der Exif-Informationen und des Benutzerkommentarfeldes ist, sollten Sie vielleicht so aussehen
Viel Glück
Tags und Links .net c# endianness