Métadonnées et images, exiftools

Jean-Marc Lecarpentier

 

Métadonnées et images, exiftools

Les métadonnées présentes dans les images sont une source d'information importante : date de prise de vue, géolocalisation, copyright, etc. Les applications web, pour la plupart, ignorent complètement les métadonnées éventuellement présentes au sein d'une image. Cet atelier a pour objectif de réaliser un prototype simple qui lit les métadonnées présentes, et permet d'écrire des informations dans les images.

Travail personnel

Lecture/écriture dans les images avec exiftools

1ère partie : tester exiftools

Utiliser exiftools et tester la lecture de métadonnées en ligne de commande avec les images de cette archive.

L'option -g permet de grouper le résultat selon la granularité de l'information voulue ou le type d'information :

The following families of groups are available:

FamilyDescriptionExamples
0Information Type EXIF, XMP, IPTC
1Specific LocationIFD0, XMP-dc
2Category Author, Time
3Document Number Main, Doc1, Doc3-2
4Instance Number Copy1, Copy2, Copy3...

Families 0 and 1 are based on the file structure, and are similar except that family 1 is more specific and sub-divides some groups to give more detail about the specific location where the information was found. For example, the EXIF group is split up based on the specific IFD (Image File Directory), the MakerNotes group is divided into groups for each manufacturer, and the XMP group is separated based on the XMP namespace prefix.

Family 2 classifies information based on the logical category to which the information refers.

Family 3 gives the document number for tags extracted from embedded documents, or 'Main' for tags from the main document.

Family 4 provides a method for differentiating tags when multiple tags exist with the same name in the same location. The primary instance of a tag (the tag extracted when the Duplicates option is disabled and no group is specified) has no family 4 group name, but additional instances have have family 4 group names of 'Copy1', 'Copy2', 'Copy3', etc.

2ème partie : lecture des métadonnées

Créer une page pour faire un upload d'image. Une fois l'image uploadée, on affiche un formulaire pour saisir les informations de l'image : titre, description, copyright pour commencer (on enrichira le formulaire ensuite avec d'autres informations).

Utiliser exiftools pour récupérer les métadonnées éventuellement présentes dans l'image uploadée et préremplir le formulaire avec les données correspondantes. On pourra utiliser la sortie JSON (option -json) et le groupe 1 (-g1) pour utiliser les informations Exif, IPTC et les informations Dublin Core de XMP.

3ème partie : inscription dans l'image

Une fois le formulaire rempli, les informations sont donc modifiées et/ou complétées. Lorsque le formulaire est envoyé, les données sont alors réinscrites dans l'image avec exiftools et l'image est affichée.

On écrira dans l'image les informations Exif, IPTC et XMP (au moins Dublin Core). Pour cela, on peut lister dans la commande à exécuter toutes les informations à changer ( exiftool -XMP:title=toto IMG_3500.JPG pour changer une valeur par exemple) mais cela devient vite lourd. Une autre solution est de créer un fichier JSON contenant toutes les informations à écrire. Attention le JSON doit absolument contenir la propriété SourceFile qui précise le fichier à mettre à jour. La liste des propriétés à changer doit être formatée comme sur cet exemple

[{"SourceFile": "IMG_3500.JPG",
  "XMP-dc:Title": "Le titre de mon image",
  "XMP-dc:Rights": "CC-by-nc-sa",
  "XMP-dc:Description": "This is a test",
  "XMP-dc:Description-en-EN": "This is a test"
}]

Les propriétés à modifier sont décrites sous la forme TagName:propertyTagName peut être général (XMP) ou plus spécifique (XMP-dc). On peut avoir des exemples en listant les métadonnées des images fournies pour tester (en utilisant les options -g0, -g1 ou -G).

On pourra tester que les données ont bien été inscrites dans l'image avec cet outil de visualisation des métadonnées.

4ème partie : création d'un fichier XMP Sidecar

En plus d'inscrire les métadonnées dans les images, créer un fichier texte XMP Sidecar qui reprend les métadonnées de l'image. (c'est quoi un fichier sidecar ?)

 
Logo de Sydonie Tim Berners Lee, créateur de HTTP et HTML. A l'origine du Web, il dirige maintenant le W3C C'est avec Mosaic, premier navigateur graphique que le web pris réellement son essor en 1993
 
Fermer