Bonjour tout le monde,
exiv2 est un utilitaire en ligne de commandes qui permet de manipuler les métadonnées Exif des photos numériques.
Par manipuler, il faut entendre lister, modifier, supprimer, ajouter des métadonnées, commentaires.
Les métadonnées correspondent à des informations contenues dans le fichier de l'image : elles sont "invisibles" directement. Pour en prendre connaissance, on recourt à un utilitaire en ligne de commandes ou graphique (i.e., XnView).
Toutou Linux SlaXen 6.0 inclut nativement exiv2 version 0.23 001700 (32 bit build).
Ce modeste article constitue une prise en main d'exiv2, on y verra comment lister les informations, ajuster la date de la prise de vue, supprimer les métadonnées, ajouter un commentaire.
Lister les métadonnées Exif
Commande :
# exiv2 pr -p a IMG_20000714_131415036.jpg
Exif.Image.ImageDescription Ascii 14 Exif_JPEG_420
Exif.Image.Make Ascii 5 MonAppareilPhoto
Exif.Image.Model Ascii 11 Alpine-Renault-V8
Exif.Image.Orientation Short 1 (0)
Exif.Image.XResolution Rational 1 72
Exif.Image.YResolution Rational 1 72
Exif.Image.ResolutionUnit Short 1 inch
Exif.Image.Software Ascii 24 Software Version v1.1.0
Exif.Image.DateTime Ascii 20 2000:07:14 13:14:15
Exif.Image.Artist Ascii 13 Lui-même
Exif.Image.YCbCrPositioning Short 1 Centered
Exif.Image.ImageWidth Long 1 3120
Exif.Image.ImageLength Long 1 4160
Exif.Image.Copyright Ascii 26 Copyright,Machintruc,2000
Exif.Image.ExifTag Long 1 442
Exif.Photo.ExposureTime Rational 1 1/33 s
Exif.Photo.FNumber Rational 1 F2
Exif.Photo.ISOSpeedRatings Short 1 200
Exif.Photo.ExifVersion Undefined 4 2.20
Exif.Photo.DateTimeOriginal Ascii 20 2000:07:14 13:14:15
Exif.Photo.DateTimeDigitized Ascii 20 2000:07:14 13:14:15
Exif.Photo.ComponentsConfiguration Undefined 4 YCbCr
Exif.Photo.ApertureValue Rational 1 F2
Exif.Photo.BrightnessValue SRational 1 (0/0)
Exif.Photo.MaxApertureValue Rational 1 F2
Exif.Photo.LightSource Short 1 Unknown
Exif.Photo.Flash Short 1 No flash
Exif.Photo.FocalLength Rational 1 3.7 mm
Exif.Photo.SubSecTime Ascii 3 10
Exif.Photo.SubSecTimeOriginal Ascii 4 100
Exif.Photo.SubSecTimeDigitized Ascii 3 20
Exif.Photo.FlashpixVersion Undefined 4 1.00
Exif.Photo.ColorSpace Short 1 sRGB
Exif.Photo.PixelXDimension Long 1 4160
Exif.Photo.PixelYDimension Long 1 3120
Exif.Photo.WhiteBalance Short 1 Auto
Exif.Photo.SceneCaptureType Short 1 Standard
Exif.Photo.Contrast Short 1 Normal
Exif.Photo.Saturation Short 1 Normal
Exif.Photo.ImageUniqueID Ascii 33 IMAGE 2000:07:14 13:14:15
Exif.Image.GPSTag Long 1 1258
où
- pr définit l'action d'impression, càd vers la sortie standard ;
- -p correspond à l'option d'impression
- a renvoie les métadonnées Exif, IPTC et XMP (raccourci pour -Pkyct)
Nous constatons que les métadonnées de cette photographie ne contiennent aucune information IPTC et XMP.
Nous aurions pu obtenir les données apparentées avec :
# exiv2 pr -b IMG_20000714_131415036.jpg
File name : IMG_20000714_131415036.jpg
File size : 3034398 Bytes
MIME type : image/jpeg
Image size : 3120 x 4160
Camera make : MonAppareilPhoto
Camera model : Alpine-Renault-V8
Image timestamp : 2000:07:14 13:14:15
Image number :
Exposure time : 1/33 s
Aperture : F2
Exposure bias :
Flash : No flash
Flash bias :
Focal length : 3.7 mm
Subject distance:
ISO speed : 200
Exposure mode :
Metering mode :
Macro mode :
Image quality :
Exif Resolution : 3120 x 4160
White balance : Auto
Thumbnail : None
Copyright : Copyright,Machintruc,2000
Exif comment :
Enfin, nous pourrions vouloir n'afficher qu'une seule donnée, comme la marque de l'appareil photo.
Commande :
# exiv2 pr -g Exif.Image.Make IMG_20000714_131415036.jpg
Exif.Image.Make Ascii 5 MonAppareilPhoto
Si nous souhaitons extraire uniquement la marque et le modèle de l'appariel, la commande serait
# exiv2 pr -g Exif.Image.Make -g Exif.Image.Model IMG_20000714_131415036.jpg
Exif.Image.Make Ascii 5 MonAppareilPhoto
Exif.Image.Model Ascii 11 Alpine-Renault-V8
Comment ajuster la date
Grâce à la commande :
# exiv2 -h
nous apprenons que l'ajustement de la date s'effectue avec l'action ad (pour ajuster) suivie d'une ou plusieurs options, telles que :
-Y pour ajuster l'année ;
-O le mois ;
-D le jour ;
-a l'heure.
L'ajustement de la partie "date" se réalise par addition ou par soustraction pour l'année, le mois et le jour.
Ainsi, pour porter l'année de la prise de vue à 2001, l'option -Y sera suivie de 1 ou "+1".
Pour modifier l'année de 2000 à 1999, l'option -Y serait suivie de -1.
Dans l'exemple suivant, nous ajoutons 2 ans.
Volontairement, deux commandes ont été ajoutées afin d'observer le changement.
# echo -e "\nDate avant : $(exiv2 pr -g Exif.Image.DateTime IMG_20000714_131415036.jpg)\n\n" ; exiv2 ad -Y +2 IMG_20000714_131415036.jpg ; echo -e "Date après : $(exiv2 pr -g Exif.Image.DateTime IMG_20000714_131415036.jpg)\n\n"
Date avant : Exif.Image.DateTime Ascii 20 2000:07:14 13:14:15
Date après : Exif.Image.DateTime Ascii 20 2002:07:14 13:14:15
Comment modifier une métadonnée
Dans notre exemple, la métadonnée relative à Exif.Image.Artist stocke la valeur "Lui-même".
Pour modifier cette valeur, nous utiliserons l'action "mo" et l'option "-m".
Pour mener à bien cette modification, il convient de créer au préalable un fichier texte qui contiendra la commande à utiliser (set, add ou del), la métadonnée (ou clé) affectée et, enfin, la nouvelle valeur.
Par exemple, pour la démonstration, j'ai créé un fichier exiv.txt qui contient :
# cat exiv.txt
set Exif.Image.Artist Robert_Doisneau
Pour simplifier, ce fichier et l'image sont stockés au même endroit.
La syntaxe de modification s'énonce ainsi :
# exiv2 mo -m ./exiv.txt IMG_20000714_131415036.jpg
On vérifie avec :
# exiv2 pr -g Exif.Image.Artist IMG_20000714_131415036.jpg
Exif.Image.Artist Ascii 16 Robert_Doisneau
Sacrebeu ! C'est Robert Doisneau qui a utilisé mon appareil à l'insu de mon plein gré :-D.
Comment supprimer les métadonnées
Attention, les métadonnées une fois supprimées le sont pour de bon.
Prenez vos précautions avant de réaliser cette opération.
L'action de suppression se code avec "rm", l'option avec "-d" suivie d'une lettre (a, e, t, i, x ou c).
Pour l'exemple, ne faisons pas dans la demie mesure :
# exiv2 rm -d a IMG_20000714_131415036.jpg ; exiv2 pr -p a IMG_20000714_131415036.jpg
root@pctoutou ~
#
Il n'y a plus rien...
Comment ajouter une métadonnée (un commentaire)
Pour ajouter un commentaire, la commande idoine s'écrit ainsi :
# exiv2 mo -c "Ceci est un test" IMG_20000714_131415036.jpg
Et, on peut vérifier avec la commande :
# exiv2 pr -p c IMG_20000714_131415036.jpg
Ceci est un test
BONUS (parce que c'est vous
)
Vous avez ouvert un site internet et vous voudriez y publier vos superbes photos artistiques.
Cependant, vous souhaitez que la navigation dans votre site reste fluide et ne fasse pas exploser la bande passante de vos visiteurs curieux, car vous connaissez de vos amis qui disposent de matériels peu performants.
Plutôt que d'afficher vos superbes clichés qui pèsent plusieurs mégaoctets, vous décidez de montrer les vignettes qui prennent infiniment moins de place.
exiv2 peut vous aider à extraire les vignettes de vos inestimables prises de vue.
L'action "ex" sera mobilisée accompagnée de l'option "-e" elle-même complétée du code "t" pour extraire uniquement les vignettes.
Dans le terminal, nous saisirons :
# exiv2 ex -e t IMG_20000714_131415036.jpg
Et avec la commande ls, nous verrons qu'un nouveau fichier a été créé.
La chaîne "-thumb" a été insérée entre le nom initial du fichier et son extension.
# ls IMG*
IMG_20000714_131415036.jpg IMG_20000714_131415036-thumb.jpg
J'espère que cet article vous aura donné envie d'aller plus loin avec exiv2.
Amusez-vous bien !
Amitiés.