Transférer les informations GPS Exif d'une image à une autre

13

J'ai un appareil photo (pas un téléphone portable) qui insère des informations GPS Exif dans les images.

Le fait est: utiliser le "gps on" tout le temps vide la batterie. J'ai donc pensé: qu'en est-il de prendre une seule photo avec le GPS, et qu'eux à la maison ajoutent ces informations exif aux autres?

Je voudrais savoir s'il existe des applications que vous connaissez qui peuvent m'aider dans ce scénario: avoir une photo avec des informations exif sur le gps, copier ces mêmes informations gps dans un lot d'autres images.

(Je préfère les solutions Linux / Mac, mais j'accepte également les fenêtres. Cela ne me dérange pas si c'est une application en ligne de commande.)

Quelqu'un vous utilise toujours MS-DOS
la source

Réponses:

13

Jetez un œil à ExifTool . C'est un couteau suisse de manipulation d'informations Exif, peut faire ce dont vous avez besoin, entre autres choses. Il s'agit d'un outil de ligne de commande compatible Windows / Linux / Mac et d'un module Perl également. Libre et open source:

L'option "-tagsFromFile"

Une option spéciale ExifTool permet de copier des balises d'un fichier à un autre. La syntaxe de ligne de commande pour ce faire est "-tagsFromFile SRCFILE". Toutes les balises spécifiées après cette option sur la ligne de commande sont extraites du fichier source et écrites dans le fichier de destination. Si aucune balise n'est spécifiée, toutes les balises inscriptibles sont copiées. Cette option est très simple, mais très puissante. Selon les formats des fichiers source et de destination, certaines balises lues peuvent ne pas être valides dans le fichier de destination, auquel cas elles ne sont pas écrites.

La commande suivante modifiera (récursivement) tous les fichiers du répertoire actuel et ses enfants, en copiant toutes les balises liées au GPS à partir du fichier SOURCE.JPG:

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

Une autre façon de procéder consiste à mettre ce qui suit dans un script. Le premier paramètre transmis doit être le fichier à partir duquel copier les coordonnées GPS, et tous les autres paramètres sont les fichiers cibles à mettre à jour:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"
haimg
la source
2
jhead est un autre utilitaire très utile qui peut compléter ExifTool.
MikeyB
1
@ SomebodystillusesyouMS-DOS: tous les arguments (éléments du $@tableau) commençant par le 2e. De plus, c'est maintenant sur quatre lignes que j'ai réalisé que j'y mettais beaucoup de choses inutiles (et incorrectes). (Aussi, "résolu".)
user1686
1
Pendant que vous utilisez le script, je continuerai de masquer le fait que j'ai complètement manqué l' tagsFromFileoption qui aurait pu faire la même chose en une seule ligne ...
user1686
1
@grawity: J'ai été un peu surpris par votre montage :-)
haimg
2
@grawity et @haimg: exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .- l' -roption revient dans le répertoire ( .), et -gps:all, eh bien ... c'est exactement ce que je cherchais. Je te bat, grawity! :) Je pense que vous pouvez modifier ce post et ajouter cet extrait, mais n'oubliez pas d'avertir les gens de lire exiftool --helppour comprendre les autres options que j'ai données ... merci à tous!
Quelqu'un vous utilise toujours MS-DOS le
0

Vous pouvez également utiliser exiv2 - c'est beaucoup plus rapide et, par exemple, vous pouvez écrire des données exif sur des images webp (et autres).

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

C'est un exemple de la carte exiv2 .

Adrian Siemieniak
la source