Comment obtenir / modifier des métadonnées EXIF ​​de plusieurs images?

30

J'ai rencontré un gros problème hier soir.

J'ai sorti mon ancien appareil photo numérique et j'ai commencé à l'utiliser sans régler la date et l'heure actuelles.

Toutes les photos cliquées ont maintenant la date du 01 janvier 2009

Je souhaite modifier la date et l'heure (et d'autres métadonnées d'image EXIF) de plusieurs images.

Veuillez recommander certains logiciels qui peuvent traiter plusieurs images en un seul clic / aller.

IM-JM
la source

Réponses:

31

Comme vous avez déjà une solution GUI, j'ai pensé que je mentionnerais qu'il existe également plusieurs façons de modifier les données EXIF ​​sur la ligne de commande; deux outils utiles sont exiftoolet jhead, qui peuvent être installés avec cette commande:

sudo apt-get install libimage-exiftool-perl jhead

Avec ces deux outils, vous pouvez utiliser plusieurs fichiers à la fois, mais vous souhaiterez peut-être sauvegarder vos fichiers avant de commencer à manipuler les données exif.

jhead

Pour modifier l'heure et la date des données EXIF ​​sur un certain nombre de fichiers «en un seul clic», vous pouvez ouvrir le terminal et faire cddans le dossier avec les images et exécuter:

jhead -ts2012:10:29-10:28:03 *.jpg

Le -tscommutateur vous permet de spécifier la date et l'heure requises et de les écrire dans l'en-tête exif en une seule fois: le format spécifié ici est YYYY:MM:DD-HH:MM:SS.

Si vous vouliez juste changer la date sans spécifier l'heure, vous utiliseriez à la place:

jhead -ds2012:10:29 *.jpg

Vous pouvez également le faire juste pour une photo prise avec un appareil photo particulier si vous l'avez spécifié, par exemple, -model "D70"mais cette option doit venir en premier dans le traitement, et doit être quelque chose comme "D70", "S100" et non "Nikon D70" ". Regardez la lecture exif de vos photos pour obtenir le bon numéro de modèle.

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

Pour plus d'informations, voir man jhead.

exiftool

Cet utilitaire a plus d'options que jhead et est très complet, comme indiqué sur le site officiel . Il existe une interface graphique pour exiftool en cours de développement, mais elle en est à ses débuts pour le moment, mais elle semble prometteuse.

Les options de décalage de date et d'heure et les formats pouvant être utilisés sont assez étendus, comme détaillé ici dans ce pdf utile . Comme avec jhead , vous pouvez décider de changer l'heure et la date, ou simplement la date. Cet exemple modifie la date et l'heure:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

L'exemple ci-dessus définit simplement une valeur particulière pour la date et l'heure des images; si vous vouliez simplement les déplacer tous selon un certain indice de temps, comme les trois années à venir, vous pouvez utiliser:

exiftool -AllDates+="3:0:0 0" *.jpg

La fonction de décalage peut être très utile si, comme cela vous est arrivé, vos photos sont soudainement marquées 2009, même si elles ont été prises en 2012. Assurez-vous d'utiliser un signe plus ou moins avant les égaux (comme dans -AllDates-=ou -AllDates+=), selon sur ce que vous voulez réaliser lorsque vous attribuez votre index de temps requis, ou les données EXIF ​​résultantes ne seront pas comme prévu.

exiftoolva créer une sauvegarde de l'original avant de modifier les données EXIF ajoutant d' origine à la fin du nom de fichier.

exiftoolprend en charge plus de types d'images que ceux jheadqui ne fonctionnent que pour les JPEG.

Pour plus d'informations, voir man exiftool.

Pablo A
la source
1
+1, réponse exceptionnelle Mik. C'est beaucoup plus flexible que d'utiliser simplement Shotwell.
Tom Brossman
Je suis tombé sur cette réponse parce que je cherchais comment ajouter des données EXIF ​​à des images jpg qui n'en avaient pas en premier lieu. Pour cela, j'ai trouvé que j'avais besoin jhead -mkexif -ts<date>.
Ian
jhead était tout simplement génial à utiliser.
Harald
1. Notez que, malheureusement, la norme EXIF ne comprend pas les informations de fuseau horaire . 2. Au lieu d'astérisque , vous pouvez utiliser le développement des accolades: DSCN{120..345}.jpg. 3. Pour modifier l'horodatage du fichier en utilisant un autre comme référencetouch -r ~/path/reference.jpg *.jpg
Pablo A
21

Changer la date et l'heure est facile à Shotwell. Sélectionnez les photos que vous souhaitez ajuster et accédez au menu comme ceci:

menu shotwell

Sélectionnez Photos / Ajuster la date et l'heure. Cela fait apparaître un menu comme celui-ci:

réglage de la date et de l'heure

Si toutes les photos sont de la même quantité, vous pouvez toutes les faire en une seule fois. Si vous avez utilisé plusieurs caméras et qu'elles étaient différentes, vous devez les diviser et faire chaque lot séparément.

La page d'aide de Shotwell expliquant ceci est ici .

Tom Brossman
la source
C'est la bonne façon de procéder avec la date et l'heure. Merci beaucoup pour le partage.
Geppettvs D'Constanzo
Les options du menu supérieur de Shotwell n'apparaissent pas ici. Est-ce un bug de Xenial Xerus?
Leonardo Castro
3

Cette question demandait EXIF, mais les métadonnées d'image ont au moins trois normes qui peuvent être attachées aux images, EXIF, XMP et IPTC. De nombreux programmes photo écrivent dans tous ces formats, mais pas tous, il est donc important de les vérifier tous.

J'ai trouvé que exifc'est un bon outil, mais c'est exiv2mieux. Comparez exif:

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

À exiv2:

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

La grande différence ici est que les mots-clés en XMP et IPTC ne sont pas du tout en EXIF ​​et donc si je ne regardais que là-bas, je penserais qu'il n'y avait pas de mots-clés.

J'ai donné la commande exiv2 -p a my-image.jpgparce qu'elle affiche les trois formes de métadonnées. Laisser de côté -p avous montrera simplement les données EXIF.

mlissner
la source