AppleScript: Abrufen von Bildspeicherortdaten

2

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 Eventskopflosen 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.

Manngo
quelle
Ich glaube nicht, dass Image Events in der Lage ist, diese Art von Metadaten aus dem Foto abzurufen, aber das mdlskann es, z. B. mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photohängt alles davon ab, was genau Sie mit diesen Informationen versuchen. Ich persönlich bevorzuge die Verwendung, exiftoolaber 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.
user3439894
@ user3439894 Sieht gut aus. Können Sie Ihren Kommentar in eine Antwort ändern, damit ich ihn annehmen kann?
Manngo
Ich kann Ihnen jedoch zusätzliche Informationen geben, oder können Sie genau das, was ich gesagt habe, gut?
user3439894
@ user3439894 Dein Kommentar hat die von mir gestellte Frage beantwortet, das sollte also reichen. Wenn Sie jedoch wissen, wie die -nullMarkerOption zu verwenden ist (sie scheint auch bei mir nicht zu funktionieren raw) oder ob es eine Alternative für RAW-Dateien gibt, wäre dies ein Bonus. Ansonsten ist es gut.
Manngo

Antworten:

1

Ich glaube nicht, dass Image Events in der Lage ist, diese Art von Metadaten aus dem Foto abzurufen, aber das mdlskann es, z. B. mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photohängt alles davon ab, was genau Sie mit diesen Informationen versuchen. Ich persönlich bevorzuge die Verwendung, exiftoolaber Sie müssten es installieren.

So beantworten Sie die Frage in Ihrem Kommentar:

Wenn Sie attributeNamebei der Verwendung eine Frage stellen -rawund die attributeNamenicht existiert, ist die Ausgabe buchstäblich (null)und wenn Sie möchten, dass es sich um etwas anderes handelt, dann verwenden Sie −nullMarker markerStringzB:−nullMarker "Does Not Exist"

mdls -name kMDItemFake -raw -nullMarker "Does Not Exist" /path/to/photo

In dem obigen Beispielbefehl kMDItemFakehandelt es sich um ein falsches kMDItemElement, sodass der Befehl Folgendes ausgibt: Does Not Existanstelle von (null).

Mit anderen Worten, wenn das Foto beispielsweise keine kMDItemLatitudeInformationen enthält und Sie danach fragen, erfolgt die Ausgabe (null)bei Verwendung mdls -name kMDItemLatitude -raw. Um dies zu ändern, verwenden Sie −nullMarker markerString.

Wenn a kMDItemnicht existiert und Sie bei der Verwendung keine Ausgabe wünschen, mdls -name attar -rawverwenden Sie mdls -name attar -raw −nullMarker '' /path/to/photo.

user3439894
quelle
Danke für deine Antwort. Ich habe eine verwandte Frage: apple.stackexchange.com/questions/271289/… für die Sie vielleicht einen Einblick haben.
Manngo