Извлечение широты/долготы из изображения с помощью curl

Извлечение широты/долготы из изображения с помощью curl

curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:'получает мне дату. Как я могу получить gps-координаты изображения? Какие-нибудь другие метаданные?

решение1

То, что вы там получаете, это не время, когда была сделана фотография. Это время, когда 123.jpgфайл был последний раз изменен (или создан/загружен на сервер). Эта информация поступает с веб-сервера, который получает ее из временных меток файла. Фотография вполне может быть на 10 лет старше, чем та, которую вы получаете. На самом деле, было бы не так уж сложно сделать так, чтобы она выглядела так, будто она из будущего!

Информация, которую вы ищете, (необязательно) хранится в метаданных изображения. С точки зрения веб-сервера, это часть фактического содержимого файла, что означает, что HTTP- HEADзапроса будет недостаточно. Сначала вам нужно загрузить файл. Давайте используемэта фотография лодкиВ качестве примера.

Если вы запустите curlкоманду, то увидите, что файл последний раз изменялся 13 октября 2015 года. После загрузки файла эта дата также появится в его временных метках (при условии, что вы сохраняете их при каждой загрузке, что, я полагаю, так и wgetесть).

Теперь, когда у вас есть файл, все, что вам нужно сделать, это получить доступ к его метаданным. В Linux, я бы сказал, identifyи exiftoolявляются наиболее популярными вариантами для этого. В вашем случае:

$ identify -format "%[EXIF:*GPS*]" image.jpg
$ exiftool -gpslatitude -gpslongitude image.jpg

Обратите внимание, что вам не обязательно загружать содержимое в реальный файл, чтобы запустить эти проверки. Вы можете легко использовать канал:

$ curl http://example.com/image.jpg | identify -format "%[EXIF:*GPS*]" -
$ curl http://example.com/image.jpg | exiftool -gpslatitude -gpslongitude -

Однако есть важное замечание:Геотегирование не является систематическим процессом. Не все изображения имеют встроенные координаты GPS. Если устройство, используемое для съемки, поддерживает GPS и действительно записывает метаданные GPS, то все в порядке (смартфоны могут это делать...). В противном случае эти две команды ничего не вернут, и в этом случае вам придетсяболее креативныйчтобы определить местоположение...

Связанный контент