Wie ist die Beziehung zwischen exif und xmp? Sind sie austauschbar?

Ich schreibe eine Anwendung, die Metadaten für ein Bild liest/schreibt (es konvertiert eine Rohdatei in ein JPEG/TIFF), und ich muss Metadaten über Kamera/Modus/... in das generierte JPEG schreiben.

Ich weiß, dass ich dies mit Exif tun kann und in Windows verwende ich GDI, um dies zu tun. Aber ich lese Informationen über xmp und xmp sdk von Adobe.

Ich frage mich, welches soll ich verwenden? exif oder xmp?

Wie stehen sie zueinander?

Warum kann man wählen, Exif-Metadaten zu schreiben, und jemand anderes kann XMP wählen? Was sind die Vor- und Nachteile der Auswahl einer von ihnen?

Ich schreibe in C++ unter Windows (Visual Studio 2012)

Wenn Sie etwas mit VS2012 schreiben, ist es am besten, Ihre Metadaten über WIC abzurufen. Dann müssen Sie sich nicht mit all dem herumschlagen und können auf eine Vielzahl von Dateitypen zugreifen, ohne sich direkt mit einer Dekodierung befassen zu müssen (einschließlich Raw-Dateien, wenn das entsprechende Codec-Paket installiert ist).

Antworten (2)

Wenn Sie Standard-Metadatenfelder wie Kamerainformationen speichern, wäre es wahrscheinlich am einfachsten, sich an die gut definierten Feldnamen und -typen von EXIF ​​zu halten. Dies kann eine bessere Kompatibilität mit anderen Anwendungen bedeuten, die XMP möglicherweise nicht so gut unterstützen.

Ihre andere Möglichkeit besteht darin, einfach beide zu verwenden, da sie in derselben Datei koexistieren können.

+1 zur Verwendung beider. ("Das Schöne an Standards ... ")

Es sind unterschiedliche Formate. XMP ist ein XML-basiertes Format, das selbsterklärender ist, da EXIF ​​erfordert, das Format der Datei zu kennen, um zu wissen, welcher Wert an jedem Offset ist. EXIF ist begrenzter in dem, was es speichern kann (zumindest kann es allgemein erkannt werden), ist aber auch kleiner, da es keine Deskriptoren der Felder benötigt, die in die Datei aufgenommen werden sollen. XMP hingegen benötigt mehr Platz, kann aber beliebige Werte definieren, da es Felddeskriptoren im Format enthält.