Ich versuche, ein Automator-Skript zu schreiben, bei dem unter anderem die GPS-Positionsdaten aus einem Bild abgerufen werden. Dies wird ein Finder-Service sein.
Nach allem, was ich bisher feststellen konnte, müssen Sie AppleScript ausführen und mit der Image Events
kopflosen Anwendung sprechen .
Wie erhalte ich von hier aus die Breite und Länge des Bildes?
Ich weiß, dass es Anwendungen gibt, die diese Daten lesen können, auch in der Befehlszeile, aber ich habe mich gefragt, ob sie für MacOS verfügbar sind, ohne etwas hinzuzufügen.
mdls
kann es, z. B.mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photo
hängt alles davon ab, was genau Sie mit diesen Informationen versuchen. Ich persönlich bevorzuge die Verwendung,exiftool
aber Sie müssten es installieren. Wenn Sie mehr Informationen über das, was Sie tun möchten, bereitstellen und etwas ausführlicher und spezifischer vorgehen möchten, ist es einfacher, dies zu schreiben und zu beantworten.-nullMarker
Option zu verwenden ist (sie scheint auch bei mir nicht zu funktionierenraw
) oder ob es eine Alternative für RAW-Dateien gibt, wäre dies ein Bonus. Ansonsten ist es gut.Antworten:
Ich glaube nicht, dass Image Events in der Lage ist, diese Art von Metadaten aus dem Foto abzurufen, aber das
mdls
kann es, z. B.mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photo
hängt alles davon ab, was genau Sie mit diesen Informationen versuchen. Ich persönlich bevorzuge die Verwendung,exiftool
aber Sie müssten es installieren.So beantworten Sie die Frage in Ihrem Kommentar:
Wenn Sie
attributeName
bei der Verwendung eine Frage stellen-raw
und dieattributeName
nicht existiert, ist die Ausgabe buchstäblich(null)
und wenn Sie möchten, dass es sich um etwas anderes handelt, dann verwenden Sie−nullMarker markerString
zB:−nullMarker "Does Not Exist"
In dem obigen Beispielbefehl
kMDItemFake
handelt es sich um ein falscheskMDItem
Element, sodass der Befehl Folgendes ausgibt:Does Not Exist
anstelle von(null)
.Mit anderen Worten, wenn das Foto beispielsweise keine
kMDItemLatitude
Informationen enthält und Sie danach fragen, erfolgt die Ausgabe(null)
bei Verwendungmdls -name kMDItemLatitude -raw
. Um dies zu ändern, verwenden Sie−nullMarker markerString
.Wenn a
kMDItem
nicht existiert und Sie bei der Verwendung keine Ausgabe wünschen,mdls -name attar -raw
verwenden Siemdls -name attar -raw −nullMarker '' /path/to/photo
.quelle