Extraia latitude/longitude de uma imagem usando curl

Extraia latitude/longitude de uma imagem usando curl

curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:'me arranja um encontro. Existe alguma maneira de recuperar as coordenadas GPS de uma imagem? Algum outro metadado?

Responder1

O que você está chegando não é a hora em que a foto foi tirada. É a hora em que o 123.jpgarquivo foi modificado pela última vez (ou criado/carregado no servidor). Essas informações vêm do servidor web, que as obtém dos carimbos de data/hora do arquivo. A foto pode muito bem ser 10 anos mais velha do que você vê. Na verdade, não seria muito difícil fazer parecer que vem do futuro!

As informações que você procura são (opcionalmente) armazenadas nos metadados da imagem. Do ponto de vista de um servidor web, isso faz parte do conteúdo real do arquivo, o que significa que uma HEADsolicitação HTTP não será suficiente. Primeiro, você precisa baixar o arquivo. Vamos usaraquela foto de um barcocomo um exemplo.

Se você executar seu curlcomando, verá que o arquivo foi modificado pela última vez em 13 de outubro de 2015. Depois de fazer o download do arquivo, essa data também aparecerá nos carimbos de data e hora do arquivo (desde que você os preserve durante os downloads, o que eu acredito wgetque sim).

Agora, depois de obter o arquivo, tudo o que você precisa fazer é acessar seus metadados. No Linux, eu diria identify, são exiftoolas escolhas mais populares para isso. No seu caso:

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

Observe que você realmente não precisa baixar o conteúdo em um arquivo real para executar essas verificações. Você poderia facilmente usar um cano:

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

Porém, uma observação importante:a geomarcação não é um processo sistemático. Nem todas as imagens possuem coordenadas GPS incorporadas. Se o dispositivo usado para tirar a foto estiver habilitado para GPS e realmente gravar metadados de GPS, então você está bem (os smartphones podem fazer isso...). Caso contrário, esses dois comandos não retornarão nada; nesse caso, você terá que estarmais criativopara determinar a localização...

informação relacionada