Extrair latitude / longitude de uma imagem usando curl

4

curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:' me informa uma data. De alguma forma eu posso recuperar coordenadas gps de uma imagem? Qualquer outro metadado?

    
por Renox92 02.10.2016 / 14:18

1 resposta

12

O que você está chegando lá não é o horário em que a foto foi tirada. É a hora em que o arquivo 123.jpg foi modificado pela última vez (ou criado / carregado no servidor). Essa informação vem do servidor da web, que obtém a partir dos registros de data e hora do arquivo. A foto poderia muito bem ser 10 anos mais velha do que você ganha. Na verdade, não seria muito difícil fazer parecer que vem do futuro!

As informações que você está procurando são (opcionalmente) armazenadas nos metadados da imagem. Do ponto de vista de um servidor da Web, isso faz parte do conteúdo real do arquivo, o que significa que uma solicitação HTTP HEAD não será suficiente. Primeiro, você precisa baixar o arquivo. Vamos usar aquela foto de um barco como exemplo.

Se você executar o comando curl , 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á no registro de data e hora do arquivo (desde que você preserve eles através de downloads, o que eu acredito que wget faz).

Agora, uma vez que você tenha o arquivo, tudo o que você precisa fazer é acessar seus metadados. No Linux, eu diria que identify e exiftool são as escolhas mais populares para isso. No seu caso:

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

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

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

Uma observação importante: a georreferenciação não é um processo sistemático. Nem todas as imagens têm coordenadas de GPS incorporadas nelas. Se o dispositivo usado para tirar a foto é habilitado para GPS e realmente escreve metadados GPS, então você é bom (smartphones podem fazer isso ...). Caso contrário, esses dois comandos não retornarão nada. Nesse caso, você precisará ser mais criativo para determinar o local ...

    
por 02.10.2016 / 14:45

Tags