iptc_exiftool

Par Administrateur, le 01 novembre 2012

Script de gestion des tags IPTC pour les fichiers images
Le script utilise EXIFTOOL (libimage-exiftool-perl):

L'idée est de créer un fichier de définitions récurrentes qui permettra de construire un second fichier de définitions qu'il faudra au besoin éditer et compléter.
Et enfin, la commande [ $ iptc_exiftool.pl -run ] communiquera tous les paramètres à [ exiftool -overwrite_original ].

Pour créer le fichier [ def_macro.txt ]
$ iptc_exiftool.pl -make_list
Pour créer le fichier [ macro.txt ] qui utilise le fichier de définitions [ def_macro.txt ]
$ iptc_exiftool.pl -make_list
Pour lire le fichier [ macro.txt ] et appliquer les paramètres aux fichiers images
$ iptc_exiftool.pl -run

Au fait, IPTC et EXIF, c'est quoi !


Les informations EXIF et IPTC sont des meta-informations (des données sur les données) relatives à une photographie.

Les informations EXIF sont des informations techniques descriptives de la prise de vue et sont renseignées automatiquement par l'appareil photo numérique:
  • la marque et le modèle de l'appareil photo
  • la date exacte de prise de vue
  • etc. ..
Les informations IPTC sont des informations de description qui nécessitent l'intervention d'un agent humain:
  • nom et titre de l'image
  • légende
  • date de création
  • auteur ou créateur
  • copyright
  • etc. ..

Pourquoi le script: iptc_exiftool


Extrait du Mail de Christophe concernant les tags IPTC

Je suis confronté à un nouveau problème. Voilà. Pour ajouter des métadonnées IPTC, j'ai utilisé Sagittarius. Sagittarius est maintenant obsolète ! J'ai utilisé pendant un temps Digikam mais c'est une vraie usine à gaz. C'est lourd, très lourd mai c'est le seul logiciel que je connaisse qui gère un profil d'IPTC. En somme, l'idéal serait de créer un p'tit script qui me permettrait de renseigner à la volée certains champs d'IPTC :

# Add IPTC tags

exiftool -overwrite_original \
-iptc:ObjectName="Bidonville de Manga Télé" \
-iptc:Keywords="Bidonville, Mayotte" \
-iptc:City="Mamoudzou" \
-iptc:Country-PrimaryLocationName="Mayotte, France" \
-iptc:Credit="Christophe Gallaire" \
-iptc:CopyrightNotice='Copyright Christophe Gallaire. Tous droits réservés.' \
-iptc:Source="Christophe Gallaire" \
-iptc:Caption-Abstract="France - Bidonville de Manga Télé - Christophe Gallaire" \
-iptc:Description="Enfants de Manga Télé"\

Il m'en manque encore quelques-uns mais voilà en somme l'idée... je te la soumets des fois que...


Le cahier des charges pour le script: iptc_exiftool


Une Graphical User Interface faisant appel à exiftool serait sympa. à développer mais je ne connaît pas suffisamment les futurs problèmes posés.

Une écriture en langage de script Bash ou Perl s'impose donc !
  • environnement
    GNU/Linux + Perl
  • pourquoi
    Gestion des tags IPTC
  • pour qui
    Toute personne gérant sa collection de photographies
  • objectif
    L'idée est de créer un fichier de définitions récurrentes qui permettra de construire un second fichier de définitions qu'il faudra au besoin éditer et compléter.
    Et enfin, la commande [ $ iptc_exiftool.pl -run ] communiquera tous les paramètres à [ exiftool -overwrite_original ].

    Mes réflexions m'ont conduit au paramétrage suivant:
    $ iptc_exiftool
        -h -H : 
            Page d'aide 
        -make_list : 
            Création du fichier de définitions récurrentes [ def_macro.txt ] si il n'existe pas et qu'il faudra éditer
            Création du fichier [ macro.txt ] d'après le fichier de description [ def_macro.txt ] et qu'il faudra éditer 
        -run : 
            Lecture du fichier [ macro.txt ] pour passage des paramètres à [ exiftool -overwrite_original ]

Utilisation du script: iptc_exiftool


Le fichier de définitions [ def_macro.txt ] est créé si il n'existe pas.
$ iptc_exiftool -make_list
Les connaissances de l'utilisateur sont mises ici à contribution !
Il est en effet possible d'ajouter ou de supprimer des mots clés et les définitions associées.
Le caractère dièse # indique une ligne de commentaire non prise en compte.
Vous devez éditer ici les définitions récurrentes.
#
# def_macro.txt
#
# contient les definitions a modifier
#
# AUCUN ESPACE ENTRE LE MOT CLE ET LA DEFINITION
#
-iptc:ObjectName="WRITE HERE YOUR TEXT"
-iptc:Keywords="WRITE HERE YOUR TEXT"
-iptc:City="WRITE HERE YOUR TEXT" 
-iptc:Country-PrimaryLocationName="WRITE HERE YOUR TEXT"
-iptc:Credit="WRITE HERE YOUR TEXT"
-iptc:CopyrightNotice='Copyright Christophe Gallaire. Tous droits réservés.'
-iptc:Source="Christophe Gallaire"
-iptc:Caption-Abstract="WRITE HERE YOUR TEXT"
#	-iptc:Description="WRITE HERE YOUR TEXT"
-imagedescription="WRITE HERE YOUR TEXT"
La même ligne de commande lis le fichier [ def_macro.txt ] ...
$ iptc_exiftool -make_list
... puis créé le fichier [ macro.txt ] depuis lequel vous devez également éditer les définitions non communes:
-iptc:ObjectName="WRITE HERE YOUR TEXT"
-iptc:Keywords="WRITE HERE YOUR TEXT"
-iptc:City="WRITE HERE YOUR TEXT" 
-iptc:Country-PrimaryLocationName="WRITE HERE YOUR TEXT"
-iptc:Credit="WRITE HERE YOUR TEXT"
-iptc:CopyrightNotice='Copyright Christophe Gallaire. Tous droits réservés.'
-iptc:Source="Christophe Gallaire"
-iptc:Caption-Abstract="WRITE HERE YOUR TEXT"
-imagedescription="WRITE HERE YOUR TEXT"
NAME_FILE_IMG=/home/cat/DEV/IPTC_EXIFTOOLS/iptc_exiftool/image.jpg
Un dernier appel ...
$ iptc_exiftool -run
va lire le fichier [ macro.txt ] pour passer les paramètres à [ exiftool -overwrite_original ]
exiftool -overwrite_original \
    -iptc:ObjectName="WRITE HERE YOUR TEXT" \
    -iptc:Keywords="WRITE HERE YOUR TEXT" \
    -iptc:City="WRITE HERE YOUR TEXT"  \
    -iptc:Country-PrimaryLocationName="WRITE HERE YOUR TEXT" \
    -iptc:Credit="WRITE HERE YOUR TEXT" \
    -iptc:CopyrightNotice='Copyright Christophe Gallaire. Tous droits réservés.' \
    -iptc:Source="Christophe Gallaire" \
    -iptc:Caption-Abstract="WRITE HERE YOUR TEXT" \
    -imagedescription="WRITE HERE YOUR TEXT" \
    /home/cat/DEV/IPTC_EXIFTOOLS/iptc_exiftool/image.jpg

    1 image files updated

Visualisation des tags


Pour visualiser les tags d'un fichier image en ligne de commande:
$ exiftool --list -s -G1 ./image.jpg
...
[IFD0]          ImageDescription                : WRITE HERE YOUR TEXT
...
[IPTC]          ObjectName                      : WRITE HERE YOUR TEXT
[IPTC]          Keywords                        : WRITE HERE YOUR TEXT
[IPTC]          City                            : WRITE HERE YOUR TEXT
[IPTC]          Country-PrimaryLocationName     : WRITE HERE YOUR TEXT
[IPTC]          Credit                          : WRITE HERE YOUR TEXT
[IPTC]          Source                          : Christophe Gallaire
[IPTC]          CopyrightNotice                 : Copyright Christophe Gallaire. Tous droits réservés.
[IPTC]          Caption-Abstract                : WRITE HERE YOUR TEXT
...

Installation de: iptc_exiftool


Il suffit d'importer la dernière version de [ iptc_exiftool ] puis de l'installer sur le système:
su root
<passwd>
# cp ./iptc_exiftool-0.0.8.pl /usr/bin/iptc_exiftool.pl
# chmod +x /usr/bin/iptc_exiftool.pl
# exit

Pour quand une GUI


Ne plaçons pas la charrue avant les boeufs.
Je vais déjà attendre quelques retours quand au concept et à l'utilisation puis une Interface graphique (GUI) verra peut être le jour si je dispose d'un peu plus de temps ...

Le projet a débuté ...

Un article suivit d'une discussion ...


Rédaction d'un article écrit par Christophe sur les tags IPTC

Mots clés : aucun
Classé dans : Programmation