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 !!
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