Übertragen Sie exif GPS-Informationen von einem Bild auf ein anderes

13

Ich habe eine Kamera (kein Handy), die GPS-Exif-Informationen in Bilder einfügt.

Fakt ist: Mit dem "gps on" wird der Akku jedes Mal entladen. Also dachte ich: Wie wäre es, wenn Sie nur ein Bild mit GPS aufnehmen und diese Exif-Informationen zu Hause zu den anderen hinzufügen?

Ich würde gerne wissen, ob es Anwendungen gibt, von denen Sie wissen, dass sie mir in diesem Szenario helfen können: Wenn Sie ein Foto mit Exif-Informationen zu GPS haben, kopieren Sie dieselben GPS-Informationen in einen Stapel anderer Bilder.

(Ich bevorzuge Linux / Mac-Lösungen, aber ich akzeptiere auch Windows. Es macht mir nichts aus, wenn es sich um eine Befehlszeilenanwendung handelt.)

Jemand verwendet Sie immer noch MS-DOS
quelle

Antworten:

13

Schauen Sie sich ExifTool an . Es ist ein Schweizer Taschenmesser der Exif-Info-Manipulation, das unter anderem das kann, was man braucht. Es ist ein Windows / Linux / Mac-kompatibles Befehlszeilentool und ein Perl-Modul. Kostenlose und Open Source:

Die Option "-tagsFromFile"

Eine spezielle ExifTool-Option ermöglicht das Kopieren von Tags von einer Datei in eine andere. Die Befehlszeilensyntax hierfür lautet "-tagsFromFile SRCFILE". Alle nach dieser Option in der Befehlszeile angegebenen Tags werden aus der Quelldatei extrahiert und in die Zieldatei geschrieben. Wenn keine Tags angegeben sind, werden alle beschreibbaren Tags kopiert. Diese Option ist sehr einfach und dennoch sehr leistungsfähig. Abhängig von den Formaten der Quell- und Zieldateien sind einige der gelesenen Tags in der Zieldatei möglicherweise nicht gültig. In diesem Fall werden sie nicht geschrieben.

Mit dem folgenden Befehl werden alle Dateien im aktuellen Verzeichnis und seinen untergeordneten Dateien (rekursiv) geändert und alle GPS-bezogenen Tags aus der Datei kopiert SOURCE.JPG:

exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps: all.

Eine andere Möglichkeit, dies zu tun, besteht darin, Folgendes in ein Skript einzufügen. Der erste übergebene Parameter sollte die Datei sein, aus der die GPS-Koordinaten kopiert werden sollen, und alle anderen Parameter sind die zu aktualisierenden Zieldateien:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"
haimg
quelle
2
jhead ist ein weiteres sehr nützliches Hilfsprogramm, das ExifTool ergänzen kann.
MikeyB
1
@ SomebodystillusesyouMS-DOS: Alle Argumente (Elemente im $@Array), die mit dem 2. beginnen. Außerdem habe ich in vier Zeilen festgestellt, dass ich dort eine Menge unnötiger (und falscher) Dinge abgelegt habe. (Auch "gelöst".)
user1686
1
Während Sie das Skript verwenden, werde ich weiterhin darüber nachdenken, dass ich die tagsFromFileOption, die dasselbe in einer Zeile hätte tun können , völlig verpasst habe ...
user1686
1
@grawity: Ich war ein bisschen überrascht von deiner Bearbeitung :-)
haimg
2
@grawity und @haimg: exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .- Die -rOption kehrt in das Verzeichnis ( .) zurück, und das -gps:allist genau das, wonach ich gesucht habe. Ich habe dich geschlagen, grawity! :) Ich denke, Sie können diesen Beitrag bearbeiten und dieses Snippet hinzufügen, aber denken Sie daran, die Leute zu warnen, zu lesen exiftool --help, um die anderen Optionen zu verstehen, die ich gab ... Vielen Dank an alle!
Jemand benutzt Sie immer noch MS-DOS
0

Sie können auch exiv2 verwenden - es ist viel schneller und kann beispielsweise exif-Daten in Webbilder (und andere) schreiben.

exiv2 -PkV --grep GPSL source.jpg | exiv2 -m- destination.webp

Dies ist ein Beispiel von exiv2 board .

Adrian Siemieniak
quelle