Extrahieren Sie mit curl Breitengrad/Längengrad aus einem Bild

Extrahieren Sie mit curl Breitengrad/Längengrad aus einem Bild

curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:'verschafft mir ein Date. Kann ich irgendwie die GPS-Koordinaten eines Bildes abrufen? Irgendwelche anderen Metadaten?

Antwort1

Was Sie dort erhalten, ist nicht die Zeit, zu der das Foto aufgenommen wurde. Es ist die Zeit, zu der die 123.jpgDatei zuletzt geändert (oder erstellt/auf den Server hochgeladen) wurde. Diese Informationen stammen vom Webserver, der sie aus den Zeitstempeln der Datei erhält. Das Foto könnte durchaus 10 Jahre älter sein als das, was Sie erhalten. Tatsächlich wäre es nicht allzu schwierig, es so aussehen zu lassen, als käme es aus der Zukunft!

Die gesuchten Informationen sind (optional) in den Metadaten des Bildes gespeichert. Aus Sicht eines Webservers sind diese Teil des eigentlichen Inhalts der Datei, was bedeutet, dass eine HTTP- HEADAnfrage nicht ausreicht. Zuerst müssen Sie die Datei herunterladen. Verwenden wirdas Bild von einem Bootals Beispiel.

Wenn Sie Ihren curlBefehl ausführen, sehen Sie, dass die Datei zuletzt am 13. Oktober 2015 geändert wurde. Sobald Sie die Datei heruntergeladen haben, wird dieses Datum auch in den Zeitstempeln der Datei angezeigt (vorausgesetzt, Sie behalten sie über mehrere Downloads hinweg bei, was meines Erachtens der wgetFall ist).

Sobald Sie die Datei haben, müssen Sie nur noch auf ihre Metadaten zugreifen. Unter Linux sind dafür meiner Meinung nach identifyund exiftooldie beliebtesten Optionen. In Ihrem Fall:

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

Beachten Sie, dass Sie den Inhalt nicht unbedingt in eine tatsächliche Datei herunterladen müssen, um diese Prüfungen durchzuführen. Sie könnten einfach eine Pipe verwenden:

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

Eine wichtige Anmerkung jedoch:Geotagging ist kein systematischer Prozess. Nicht alle Bilder haben GPS-Koordinaten. Wenn das Gerät, mit dem das Bild aufgenommen wurde, GPS-fähig ist und tatsächlich GPS-Metadaten schreibt, ist alles in Ordnung (Smartphones können das...). Andernfalls geben diese beiden Befehle nichts zurück. In diesem Fall müssen Siekreativerum den Standort zu bestimmen...

verwandte Informationen