Я пытаюсь написать скрипт Automator, который включает, помимо прочего, получение данных о местоположении GPS из изображения. Это будет служба поиска.
Из того, что я смог обнаружить до сих пор, это включает запуск AppleScript и разговор с Image Events
обезглавленное приложение.
Отсюда, как я могу получить Широту и; Долгота изображения?
Я знаю, что есть приложения, которые могут читать эти данные, в том числе и из командной строки, но я задавался вопросом, было ли это доступно для MacOS без добавления чего-либо.
mdls
может сделать это, напримерmdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photo
однако все зависит от того, что именно вы пытаетесь сделать с этой информацией. Я лично предпочитаю использоватьexiftool
Однако вам придется установить его. Если бы вы предоставили больше информации о том, что вы пытаетесь сделать, и были бы более точными и конкретными, было бы легче написать и ответить.-nullMarker
вариант (это не работает для меня, даже когда я используюraw
вариант), или есть ли альтернатива для файлов RAW, это было бы бонусом. В противном случае это хорошо.Ответы:
Я не верю, что Image Events может получить метаданные этого типа из фотографии, однако
mdls
может сделать это, напримерmdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photo
однако все зависит от того, что именно вы пытаетесь сделать с этой информацией. Я лично предпочитаю использоватьexiftool
Однако вам придется установить его.Чтобы ответить на вопрос в вашем комментарии:
Если вы запросите
attributeName
когда используешь-raw
иattributeName
не существует выход буквально(null)
и если вы хотите, чтобы это было что-то еще, используйте−nullMarker markerString
Например:−nullMarker "Does Not Exist"
В приведенном выше примере команды
kMDItemFake
это подделкаkMDItem
item, так что команда выведет:Does Not Exist
вместо(null)
,Другими словами, если в качестве примера фотография не имеет
kMDItemLatitude
информация, и вы запросите его, вывод будет(null)
когда используешьmdls -name kMDItemLatitude -raw
, Чтобы изменить это, используйте−nullMarker markerString
,Если
kMDItem
не существует, и вы не хотите выводить при использованииmdls -name attar -raw
затем используйтеmdls -name attar -raw −nullMarker '' /path/to/photo
,источник