Voici quelques exemples pour

renommer vos photos en ligne de commande

Nota: pour faire à peu près les même action avec une interface graphique, on peut utiliser le très bon digiKam, voir aussi (pour les utilisateur de Windows, mon article sur fast-stone image viewer

Un renommage adapté permet un tri facile et une recherche plus rapide de vos photos en fonction de leurs dates voir d'un sujet.

Pour cela je leur ajoute en préfixe la date sous la forme AAAAMMDD, par exemple 20140512 (pour plus de lisibilité, vous pouvez ajouter des traits d'union entre les éléments de la date... 2014-05-12), et je leur ajoute un sujet

 De plus, toujours pour faciliter la recherche, on peut laisser le nom initial et ajouter un sujet.

Nous allons pour cela utiliser un programme qui sait lire les données EXIF, IPTC et XMP des fichiers images : exiv2

il faut au préalable installer le paquet exiv2

sudo apt-get install exiv2

exiv2 permet de faire cela très facilement. Comme son nom l'indique, il exploite les données exif des photos. Pour s'en convaincre, il suffit de taper

exiv2 *.JPG  pour voir défiler les informations des photos du répertoire où vous vous trouvez.

Et pour renommer nos photos en utilisant la date de prise de vue, on peut taper :

exiv2 -r %Y%m%d_:basename:_sujet rename *.JPG 

exemple : les photos DSC5672.JPG et DSC5673.JPG, après avoir appliqué :

exiv2 -r %Y%m%d_:basename:_we_montagne rename DSC56*.JPG 

ou si on veut être plus précis:

exiv2 -r %Y%m%d_:basename:_we_montagne rename DSC567[2-3].JPG 

sont renommées en

  • 20130922_DSC5672_we_montagne.JPG
  • 20130923_DSC5673_we_montagne.JPG

je sépare chaque "champs" par des soulignés _ à vous d'adapter

... mais une erreur est rapidement arrivée et vous vous retrouvez avec des photos comportants 2 fois la date, un mauvais sujet...

il est donc important de pouvoir corriger cela sans faire un renommage une par une !

la fonction rename nous permet cela intelligement grâce aux REGEX (Regular Expressions ou expressions rationnelles)

voir mon article sur les REGEX :

Si on reprend notre exemple plus haut, imaginons que nous préférons finalement avoir un nom du type 20130923_72_escalade.JPG

nous tapons alors : rename 's/^([0-9]{8})_DSC56([0-9]{2})\.JPG/$1_$2_escalade.JPG/' *.JPG

A noter: la syntaxe n'étant pas des plus facile à mémoriser, penser à utiliser la recherche interactive Ctrl-R, cf. faq_astuce sur doc.ubuntu-fr.org

Modifier la date de vos photos

À qui n'est-il pas arrivé d'avoir oublié de paramétrer la bonne date-heure dans l'APN, de passer à l'heure d'hiver ou d'été?

Là aussi, exiv2 nous permet de corriger cela :

l'exemple ci-dessous : tous les fichier JPEG du répertoire sont daté au 16 janvier 2014 à 00:48 pour le premier au lieu du 14 juin 2014 vers 10:48, on retranche donc 2 jours (-D), on ajoute 5 mois (-O) et on ajoute 10 heures

exiv2 -v ad -D -2 -O +5 -a +10:00:00 *.JPG

ou encore +2 jours, 5mn et 15s

exiv2 -v ad -D +2 -a -0:05:15 *.jpg

et exiv2 supporte les regex, on peut donc faire:

exiv2 -v -Y +5 -O +5 -D +24 -a -02:00:00 IMG_2452[2-9]_red.jpg

soit +5 ans, +24 jours, -2 heures aux images IMG_24522_red.jpg, IMG_24523_red.jpg à … IMG_24529_red.jpg

Enfin pour passer à l'heure d'hiver des photos prises avec l'heure d'été, on retire une heure:

exiv2 -v ad -a -01:00:0 *.JPG

 

Ajouter des données EXIF, IPTC et XMP

la librairie et le programme exiv2, comme on l'a vue ci-dessus, permet de modifier les données EXIF voir IPTC ou XMP. Nous allons l'utiliser maintenant pour ajouter des informations telles que votre nom, la licence (creative commons), une description.

Quelle paramètres modifier:

Avant tout, il faut connaître le nom des paramètres: un simple exiv2 *.JPG ne suffit pas car par exemple, cela va afficher

Copyright       : 
Exif comment    : bcag2 touticphoto.fr

On peut donc exécuter:

exiv2 -PExgnycv une_photo.JPG

ce que va nous afficher une longue liste où on peut retrouver notre paramètre de commentaire:

0x9286 Photo        UserComment                 Undefined  44  charset="Ascii" bcag2    touticphoto.fr

notamment la section: Photo et le nom du paramètre: UserComment

Pour réutiliser facilement ces modifications, on peut les enregistrer dans un fichier texte qui sera appelé par exiv2.

Créez tout d'abord un fichier texte maLicence par exemple, dans lequel on ajoute les commandes qui vont réaliser ces ajouts :

NOTA : préférer la commande set à la commande add ... pour éviter de se retrouver avec plusieurs fois le même attribut, d'autant que set ajoute l'attribut s'il n'existe pas !

set Exif.Image.Artist Ascii "bcag2"
set Exif.Image.Copyright Ascii "Creative Commons CC-By-Sa touticphoto.fr"
set Exif.Photo.UserComment Ascii "l'option -PExgnycv d'Exiv2 est bien utile"

pour ajouter l'équivalent pour les données IPTC, il suffit d'ajouter dans ce même fichier :

add Iptc.Application2.Contact "bcag2"
add Iptc.Application2.Copyright "touticphoto.fr Creative Commons By-Sa"

Pour visualiser les données IPTC, il faut préciser l'option -pi (voir -pa pour toutes les données EXIF, IPTC et XMP) : exiv2 -pi photo.JPG

il suffit ensuite d'appliquer ces ajouts en appelant exiv2 :

exiv2 -m maLicence.txt *.JPG

On peut aussi ajouter le n° de la photo (évidemment, le mieux est de faire cela dans un script bash) :

exiv2 -M"set Exif.Image.ImageNumber 7480" photo.JPG

Pour ajouter la description, nous ne passons par le fichier texte mais directement en ligne de commande de la façon suivante :

pour la description en EXIF :

exiv2 -M"set Exif.Image.ImageDescription Ascii bateau" photo.JPG

on retrouve bien notre description "bateau" dans les propriétés - Options avancées de the Gimp

Nota : le codage - obsolète - étant en ASCII, il est proscrit de mettre des accents !!

capture d'écran sous Gimp où l'on visualise la description

pour la description en IPTC (j'ai mis des accents... mais attention au résultat selon les logiciels qui vont relire!!) :

exiv2 -M"set Iptc.Application2.Caption String bateau" photo.JPG

on peut utiliser aussi l'attribut Iptc.Application2.Subject

et enfin la designation en XMP où la description doit commencer par lang="fr-FR" suivit de la description que vous souhaitez enregistrer :

exiv2 -M"set Xmp.dc.description lang="fr-FR" bateau avec Françis" photo.JPG

 Voir aussi mon article

redimmensionnements des photos en ligne de commande avec ImageMagick