curl を使用して画像から緯度/経度を抽出する

curl を使用して画像から緯度/経度を抽出する

curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:'日付を取得できます。画像の GPS 座標を取得する方法はありますか? その他のメタデータはありますか?

答え1

ここで取得されるのは、写真が撮影された時間ではありません。ファイルが123.jpg最後に変更された (またはサーバー上に作成/アップロードされた) 時間です。この情報は、ファイルのタイムスタンプから取得される Web サーバーから取得されます。取得される写真は、取得される写真より 10 年古いものである可能性も十分にあります。実際、未来から来たように見せることはそれほど難しくありません。

探している情報は(オプションで)画像のメタデータに保存されています。ウェブサーバーの観点からは、それはファイルの実際のコンテンツの一部であり、HTTPHEADリクエストだけでは不十分であることを意味します。まず、ファイルをダウンロードする必要があります。その船の写真例として。

コマンドを実行するとcurl、ファイルが最後に変更されたのは 2015 年 10 月 13 日であることがわかります。ファイルをダウンロードすると、この日付がファイルのタイムスタンプにも表示されます (ダウンロード間でタイムスタンプが保持されている場合、そうwgetしていると思います)。

identifyファイルを入手したら、メタデータにアクセスするだけです。Linux では、と が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メタデータを書き込んでいる場合は問題ありません(スマートフォンはそれができます...)。そうでない場合は、この2つのコマンドは何も返さないので、より創造的場所を特定するために...

関連情報