Um meine Bildverarbeitungssoftware zu verwenden, verwende ich exiftool, um erfolgreich Exif-Informationen aus Cr2-, TIFF-, JPG-Dateien zu mischen. Die hinzugefügten Tags, wie zum Beispiel "keywords", sind alle in OSX (Berglöwe) Finder, Vorschau und von Spotlight schön indiziert.
Für PNGs muss ich auf XMP zurückgreifen, da dies der Metadaten-Container für PNG ist. ExifTool-hinzugefügte Tags scheinen jedoch weder von Preview noch von SpotLight übernommen zu werden. Wenn ich dagegen zuerst ein Tag in Preview hinzufüge und exiftool verwende, um später ein neues Tag hinzuzufügen, wird dieses IS indexiert. Der Unterschied hier sehe ich hier in den XMP-Rohdaten, wo exiftool neu einen Header erstellt, während Preview das nicht tut.
Betrachten Sie als Beispiel das folgende PNG von der Wikipedia-Seite zu PNG ohne Metadaten Ссылка :
Hinzufügen eines Schlüsselwortes mit exiftool und anschließendes Ablegen des XMP-Datenblocks:
%Vor%Gibt die folgenden XMP-Daten:
%Vor%Im Preview- oder Finder-Infofenster wurde jedoch kein "ViaExifSubject" gefunden.
Alternativ können Sie mithilfe der OSX-Vorschau Kommentare hinzufügen (Öffnen Sie in der Vorschau, Informationen anzeigen, gehen Sie zum Tab "Keywords" und klicken Sie auf "+", um ein Stichwort hinzuzufügen). XMP erneut über exiftool gedumpt:
%Vor% Der Header xpacket
ist in der Vorschau nicht vorhanden, und das XMP Toolkit ist anders. Das "viaPreview" -Tag ist jetzt sichtbar, z. Verwenden von mdls
auf der CLI.
Das Senden von unformatierten XMP-Informationen in eine clean -Datei liefert ebenfalls nicht das erwartete Ergebnis:
%Vor%Wenn ich zum ersten Mal ein Tag mit Preview erstelle und DANN den obigen Befehl mache, spiegeln sich die neuen Tags wider. Ich vermute, dass ich einen externen Datenparser beaufsichtige, der aktiviert werden muss. greift die Tags auf und legt sie in einem anderen Speicher ab (zB .DS_store). Ich habe keine xattr gesehen, die hinzugefügt werden.
Das sind meine Fragen:
Ich habe meinen xmp_sdk auf meiner Festplatte ausgegraben und mit den mitgelieferten Beispielen experimentiert:
ModifyXMP kann "reine" XMP-Informationen in PNG schreiben, das im OSX-Finder angezeigt wird - das ist ein gutes Ziel.
ReadingXMP kann XMP-Informationen lesen, die von ExifTool in PNG eingefügt wurden, obwohl diese Informationen im OSX-Finder nicht angezeigt werden.
Die Dateigröße ist ähnlich, wenn man sich die Ausgabe und das Exiftool von ModifyXMP anschaut, die den exakt gleichen XMP-Blob einfügen. Ein Diff zeigt an, dass Exiftool am Ende der Datei hängt, wo XMP sdk es in den Header des PNG einfügt. Die XMP-Spezifikation gibt an, dass "Encoders ermutigt werden, den Chunk zu platzieren am Anfang der Datei, aber das ist nicht erforderlich. "
Fazit: Es gibt einen (geringfügigen) Unterschied darin, wie Exiftool XMP schreibt, und dies vermasselt den Abruf von OSX-Metadaten.
Für jetzt:
Ich reported auf exiftools 'Forum und Autor Phil Harvey antwortete:
Ich habe etwas mit Apple Preview gespielt und erkennt XMP nicht nur am Ende der Datei, sondern löscht auch diesen XMP, wenn ich Schlüsselwörter zum Bild hinzufüge. Meine Vermutung ist, dass Apple Software XMP ignoriert, wenn es nach dem IDAT-Chunk kommt. Es wäre wunderbar gewesen, wenn die XMP-Spezifikation vorgeschrieben hätte, dass der XMP-Block vor IDAT steht, aber das tat es nicht, also muss dies als ein Fehler in der Apple-Software betrachtet werden. Ich habe dies zur Liste bekannter Probleme hinzugefügt.
Schließlich entschied Phil Harvey, dieses Problem in Exiftool selbst zu beheben:
Ich habe viel daran gearbeitet, und Exiftool 9.40 wird eine neue Option haben, mit der Sie XMP vor dem PNG IDAT-Chunk schreiben können. Der entsprechende Befehl sieht dann so aus:
exiftool -api PNGEarlyXMP
...
Hat einen Fehler bei Apple abgelegt - Update Dez 2014: Apple hat meinen Fehler beendet und erklärt, dass sie keine Maßnahmen zu diesem Thema ergreifen werden
Aus Ihrer Beobachtung sieht es so aus, dass exiftool
IPTC und XMP nicht abgleicht. Was Sie versuchen könnten, ist zu versuchen, sowohl IPTC und XMP in PNG zu ändern und zu sehen, ob es durchsuchbar ist.