Photographies d'un oeil ordinaire

Tutorial : Installer & exécuter ExifTool sous Windows

1/ Définition du Wikipédia :

L'Exchangeable image file format ou Exif est une spécification de format de fichier pour les images utilisé par les appareils photographiques numériques.
...
Les balises de métadonnées définies dans le format Exif standard couvrent un large éventail de données, dont :

  • Information de la date et de l'heure.
  • Les réglages de l'appareil.
  • Description et information des droits d'auteur.
  • ...

...

2/ Objet de ce tutorial :

Mon but premier était de trouver un logiciel pour faciliter la mise à jour en masse des informations EXIF de mes images, notamment les champs Titre et mots-clés. Je souhaitait mettre en ligne une centaine de mes photos, un "best-of" sur un site web "intelligent", dans lequel le site lui-même (scripts PHP) irait chercher directement les titres des images dans les fichier JPG pour construire les pages dynamiquement (principe du PHP).
Pour la galerie, j'ai trouvé mon bonheur avec PhpWebGallery ,je l'ai adapté un peu pour que les pages soient encore plus dynamiques (mot-clés dans les méta-balises, titre de la page = titre de la photo, etc ...).
Mais côté EXIF, je n'ai rien trouvé de super efficace. Dans l'état actuel de l'art, c'est un peu la jungle côté logiciels, il y a bien le bon vieux eXifer et Adobe Bridge qui sortent du lot mais on a jamais accès à la totalité des champs, on nous cache toujours quelque chose !
Mais à force de chercher, on trouve la perle rare et je suis tombé sur ExifTool ...

3/ Exiftool

ExifTool n'est pas réellement un logiciel, c'est un module Perl (langage script bien connu sous Unix/Linux). L'avantage, c'est que c'est hyper rapide, hyper puissant, on peut tout lire/modifer, le gros inconvenient, notamment pour la génénration Windows only, c'est que c'est en ligne de commande, point d'interface graphique et de drag & drop inutiles, du vrai, du pur, du 100% bio LOL !
Mais comme je suis de la génération Basic, MsDOS 3.2 et autre VAX VMS sous vi, j'ai pitié de vos neurones lobotomisées par Bill gates et je vais tenter de vous expliquer en quelques lignes comment utiliser ce formidable outil.

4/ Installation sous windows

Oui, je ne parlerai pas d'installation sous Unix/Linux car il n'y a rien à installer, Perl est installé normalement dans chaque distribution et si vous êtes sous Linux, vous savez écrire un script shell alors ne perdez pas votre temps avec ces MsDoseries. ;-)
Pour faire tourner les scripts d'ExifTool, vous devez installer un interpréteur Perl, rassurez-vous vous pourrez utiliser ExifTool sans jamais écrire ni comprendre uen seule ligne de Perl !

-> Téléchargez la dernière version de ActivePerl , sélectionnez la version "freeware", actuellement c'est la 5.8.8.819 pour Windows X86

-> Installez le .msi, répondez 'yes' à toutes les questions et basta, c'est installé.

-> Téléchargez la dernière version de ExifTool, actuellement c'est la 6.47 qui date du 15/10/2006 (et oui il y a 4 jours !)

Aie, première embrouille, c'est un "targézippé" ! Mais quoi est-ce que c'est-il donc ??? Pas de panique, c'est un Zip à la Linux, normalement WinZip, 7zip ou WinRar doivent savoir le lire. Enfin, chez moi, WinRar le lit sans problème !

-> Dezippez, pardon détargézipez l'arborescence de fichiers/répertoires là ou bon vous semble, chez moi c'est dans "Z:\imagerie\exiftool\Image-ExifTool-6.47\Image-ExifTool-6.47\", notez bien ce chemin d'accès au fichier "exiftool", nous en aurons besoin tout à l'heure.

-> Pour simplifier, on va créer un fichier de commande exiftool.bat dans le répertoire C:\Perl\bin. Sous un éditeur de texte vous copiez/collez (en remplaçant le bon chemin!) le code suivant :

@perl Z:\imagerie\exiftool\Image-ExifTool-6.47\Image-ExifTool-6.47\exiftool %1 %2 %3 %4 %5 %6 %7 %8 %9

-> Enregistrez ce fichier dans le répertoire "C:\Perl\bin" (si vous avez installez Perl ailleurs, adaptez !) avec pour nom "exiftool.bat"
ATTENTION: Certains éditeurs ajouterons l'extension ".txt" et vous vous retrouverez avec un fichier "exiftool.bat.txt"... Allez le renommer via l'explorateur en ayant au préalable désactiver l'option "Masquer les extension des fichiers dont le type est connus" dans "Outils > Options des dossiers > Affichage".

-> Vérifiez que tout est bien installé : lancez une session DOS "Démarrer > Exécuter ... > cmd", puis "exiftool", vous devez obtenir l'aide d'exifer (+3 pages!).

4/ Amélioration de l'accès aux sessions DOS sous Windows

Préambule sur les noms de fichiers :
Beaucoup d'entre-vous, notamment ceux qui n'ont jamais travaillé en ligne de commande, auront pris la très mauvaise habitude de nommer leurs répertoires et leurs fichiers avec des caractères "à la con", si si je le répète "à la con". Je vous assure, les espaces, les accents, et autres anneries autorisées par windows, peuvent foutre un bordel monstre sur un réseau dès qu'il s'agit de faire du multi-plateforme (Windows/Linux). Bref, puisque qu'avec Perl/ExifTool vous mettez un pied dans monde Unix/Linux vous risquez de rencontrer quelques problèmes.

Puisque Windows, n'est pas prévu pour gérer des sessions DOS, l'interface graphique qui nous permet de lancer des sessions DOS est limité ... même inexsitante, il faut lancer 'Démarrer > Exécuter ... > cmd', puis naviguez dans vos répertoires, à l'aide de commandes 'CD nomDuRépertoire' ou encore 'CD "nom du répertoire"' (eh eh les espaces ...) ou pire encore "CD nomDu~1" ... Bref, un petit tour dans la base de registre va nous simplifier la vie !

Astuce lu sur genration-nt.com : Le but est d'avoir un menu "Session DOS" sur un clic-droit sur un répertoire dans l'explorateur

-> Téléchargez & installez le fichier suivant ou faites-le manuellement dans la base de registre :

[HKEY_CLASSES_ROOT\Directory\shell\Session DOS\command]
@="cmd.exe /K cd %1"

5/ Lecture des EXIF dans les RAW

-> Lancez la commande "exiftool -g NomImage.cr2"

Vous avez vu tout ce qu'il vous sort comme information ! Sur les RAW issus de mon Canon 350D, il y a presques 200 champs de renseignés !!!
Il y a même les noms et les focales des objectifs utilisés : Lens : 18.0 - 50.0mm (35mm equivalent: 28.1 - 78.1mm)
C'est effectivment avec mon Sigma 18-50 f/2.8 que j'ai pris cette photo!
L'autofocus s'est fait sur le point en milieu droit !!! AF Points Used : Mid-right, Bottom

Malheusement la plupart de ces champs vont disparaître lors de la conversion au format JPEG.

6/ Lecture des EXIF dans les JPG

Faites-le test et lancer la commande sur la même image converti en JPG :

-> Lancez la commande :

exiftool -g NomImage.jpg

Vous avez remarqué ? Ce ne sont plus les mêmes champs qu'en RAW, beaucoup ont disparus, bon il reste quand même les plus intéressant (date/heure, focale, expo, ...)

-> Passez maintenant le fichier dans votre logiciel de retouche

-> Relancez la commande :

exiftool -g NomImage.jpg

Vous avez remarqué ? Il y en a BEAUCOUP plus, maintenant votre fichier est TAGUE Photoshop ou Picasa !!! Photoshop rajoute 11 champs à lui tout seul !!!

Grrr ... c'est le genre de trucs qui me hérisse les poils ça ! On ajoute des infos à mon image sans que
1) je le sache !
2) j'ai la possibilité de désactiver ce marquage

Heureusement qu'ExifTool est aussi capable de modifier les EXIF ...

7/ Modification des EXIF dans les JPG

Donc pour virer tous ces tags espions et en profiter pour ajouter mon adresse mail, mon site sur chaque photo j'ai crée un nouveau fichier de commande dans le répertoire c:\Perl\bin.
Je l'ai appelé "mes_exif.bat" :

my_cs2out.bat :
@ECHO OFF
REM Les Tags IPTC sont inclus dans les tag Photoshop
REM Effacer les Tags Photoshop, c'est effacer les Tags IPTC
REM Solution :
REM 1) Transférer les IPTC avant en XMP
REM 2) Effacer les Tags Photoshop
REM 3) Transférer les XMP en IPTC

SET REP_WIN=Z:\DOWNLOAD\Imagerie\exifTools\Image-ExifTool-6.47\Image-ExifTool-6.47

perl %REP_WIN%\exiftool "-tagsFromFile" %1 "-IPTC:Caption-Abstract > XMP-dc:Description" "-IPTC:By-line > XMP-dc:Creator" "-IPTC:ObjectName > XMP-dc:Title" "-IPTC:Keywords > XMP-dc:Subject" %1
perl %REP_WIN%\exiftool "-Photoshop:All=" "-EXIF:Software=" "-XMP:CreatorTool=" %1
perl %REP_WIN%\exiftool "-tagsFromFile" %1 "-XMP-dc:Description > IPTC:Caption-Abstract" "-XMP-dc:Creator > IPTC:By-line" "-XMP-dc:Title > IPTC:ObjectName" "-XMP-dc:Subject > IPTC:Keywords" %1

my_exif.bat :
@rem = '--*-Perl-*--
@echo off
REM
REM Efface les Tags Photoshop (script spécifique en 3 passes)
REM
REM Efface profil ICC
REM Ajoute adresse mail yann.lemarie@free.fr
REM Ajoute site web http://www.softeam.fr

SET REP_WIN=Z:\DOWNLOAD\Imagerie\exifTools\Image-ExifTool-6.47\Image-ExifTool-6.47

IF "%1" == "-r" goto Recursif

:Pas_recursif
call my_cs2out.bat %1
goto Fin

:Recursif
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#! /usr/bin/perl -w
my = "my_cs2out.bat";
my = ;
if (-d ) { #it's a directory
my = "fictmp.txt";
system "DIR /B/S > ";
open (FIC, );
while () {
my =;
chop ();
if (-f ) { #it's a file
if ( =~ /\.jpg/) { #it's a JPEG
system " ";
}
}
}
close(FIC);
system "DEL ";
}
__END__
:endofperl

goto Fin

:Fin
REM perl %REP_WIN%\exiftool -overwrite_original "-ICC_Profile:*=" "-XMP:CreatorContactInfoCiEmailWork=yann.lemarie@free.fr" "-XMP:CreatorContactInfoCiUrlWork=http://www.lecelte.com" %1 %2 %3 %4 %5 %6 %7 %8 %9

Il vire tous les tags du bloc Photoshop, le tag EXIF:Software et le tag XML:CreatorTool ainsi que tous les tags du bloc ICC_Profile car pour une publication web ils ne sont pas utiles.

8/ Modification des EXIF dans les JPG : traitement par lot

Pour traiter tout le répertoire courant :

mes_exif .


Pour traiter tout le répertoire "NomDepRep" :

mes_exif NomDeRep

Ajouter l'option "-r" pour traiter toute une arborescence (ex: NomDeRep/SousRep1+NomDeRep/SousRep+...) :

mes_exif -r NomDeRep

9/ Les options de ExifTool

Je débute dans l'utilisation de se soft, mais j'ai noté quelques options intéressantes :

-r : traitement récursif

-P : conserve les date/heure de modif du fichier

-overwrite_original : évite le backup systématique que fait ExifTool

-g : pour grouper les tags (en lecture)

-> Liste de toutes les options

10/ En savoir plus

-> Site de l'auteur d'ExifTool

-> Usage & option d'ExifTool

-> Description de tous les Tag reconnus par ExifTool

11/ Conclusion

J'espère vous avoir facilité la tâche dans l'installation et la mise en oeuvre de cet outil. J'ai passé quelques heures à chercher, lire et rédiger tout ça. J'ai juste fait ce tuto pour vous faire gagner du temps, je n'en tire aucun profit, je n'ai rien à voir ni de prêt ou de loin avec les outils/marques citées dans ce document. Ma seule motivation est "partage de mes connaissances".

Maintennat, je ne voudrais pas non plus être submergé de messages du genre "je n'y arrive pas, c'est nul, ...", je ne suis pas support technique de cet outil ou de windows. Toutefois, je ne refuserai pas de répondre à vos questions & problèmes s'ils sont légitimes. Lisez correctement cette doc, normalement ça doit marcher du 1er coup.

Attention! Je ne veux pas être responsable de la perte de vos données/photos, faites des sauvegardes avant de faire des tests !

Et si vous avez quelques minutes, passez faire un tour et laissez des commentaires sur les photos de ma galerie : http//www.lecelte.com

12/ Dernières news Novembre 2007

Vous êtes sauvés, il existe désormais une interface graphique sous Windows pour piloter ExifTool : GENIAL

 

Octobre 2006 - Révision Novembre 2007 - yann.lemarie@free.fr