Introduction

Vous avez sûrement été dépité à la lecture de ce message d’erreur en ouvrant une photo dans Photolab.
Le message indique que c’est l’appareil photo plutôt que la photo qui n’est pas pris en charge. Nous allons voir comment faire croire à Photolab qu’elle a été prise avec un appareil compatible en déguisant la photo.

Contenu et limites du tutoriel

PhotoLab est un éditeur sophistiqué qui utilise les informations contenues dans les photos. En lui faisant croire que la photo issue d’un appareil incompatible vient d’un appareil supporté, PhotoLab lit des informations et applique des optimisations qui ne correspondent pas nécessairement à la caméra ayant créé la photo

Le résultat peut être inadapté, au pire illisible. C’est à l’utilisateur de découvrir l’appareil photo de substitution, et d’assumer les inconvénients de cette méthode faute de mieux.



Un peu de technique

Le fichier d’une photo numérique ne contient pas que l’image, il contient aussi des données textuelles et mathématiques arrangées dans un format précis, les métadonnées.
Pour l’explication nous avons utilisé un exemple de photo au format DNG, mais la méthode de déguisement peut s’appliquer à d’autres formats d’image.

Un fichier photo normalisé au format DNG est structuré comme suit:
* L’entête, contient la description de la structure
* Plusieurs sous-structures de données
– EXIF, C’est le bloc d’information historique, que l’on trouve dans presque tous les formats de photos
– XMP contient généralement les mêmes informations.
XMP est mieux structuré, elle contient des balises d’identification qui améliorent la compatibilité de la photo
* Des données mathématiques sur le profil de couleur et la courbe
* Des données sur l’interprétation de la photo
* Deux images de prévisualisation au format JPEG, de la taille d’origine et une vignette
* La photo dématricée (DNG linéaire)
* Ou la photo brute du capteur en format raw propriétaire

Les structures EXIF et XMP contiennent les deux informations qui vont nous permettre de maquiller nos photos.
* Make qui indique la marque de l’appareil
* Model qui correspond au modèle de l’appareil, on l’aura deviné

L’illustration montre une structure XMP typique. On remarque que XMP intègre  les information de plusieurs structures, le vieux TIFF, le plus récent EXIF et des informations spécifiques XMP.



Il existe des dizaines de balises dans la structure XMP que PhotoLab va utiliser pour optimiser le rendu de la photo. Certaines sont standards et d’autres sont spécifiques à l’appareil utilisé. Chaque fabricant introduit ses propres informations dans la structure XMP et nous ne savons pas si elles sont interprétées ou ignorées par PhotoLab.

Ci-dessous un exemple de fichier Raw Sony et quelques uns des MakerNotes (sur plus d’une centaine) du fabricant. 



Déroulement du maquillage

Le maquillage consiste à modifier la valeur de deux champs des métadonnées. Nous les réalisons avec l’outil ExifTool.

ExifTool

ExifTool est un petit programme gratuit disponible pour Windows, Mac OS et Linux/Unix. Exiftool n’a pas d’interface graphique et tourne en mode console. Il existe des interfaces graphiques, à installer séparément.

Performances et limitations

Les fichiers DNG ne sont pas les seuls à contenir des métadonnées. ExifTool supporte environ 200 types: Canon, Nikon, Sony, JPEG mais aussi doc, pdf, etc. 

La version actuelle d’ExifTool reconnaît 24286 balises (Tags) de structures.
ExifTool permet de modifier toutes les balises … et même d’ajouter des balises personnalisées. C’est donc un outil très puissant dont l’utilité dépasse largement le cadre de ce tutoriel.

Il existe deux méthodes pour exécuter ExifTool.
– L’une utilisant l’ExifTool natif accessible via la console.
– L’autre utilisant une interface graphique au-dessus d’ExifTool.

ExifToolGUI est une interface graphique qui utilise l’outil de base ExifTool. C’est aussi un logiciel gratuit.
ExiftoolGUI n’offre pas toutes les fonctionnalités de ExifTool mais est suffisant pour la tâche qui nous intéresse. Aussi, il est nettement plus lent que la version Console.


Ce tutoriel a été réalisé sur Windows 10 version 21H1 en utilisant ExifTool version 12.29 et ExiftoolsGUI version 5.16

1- Utilisation avec ExifToolGUI

Sélectionner le fichier, dans la fenêtre du navigateur (centrale).
L’information s’affiche à droite (voir la copie d’écran)


– On voit ici que le fichier samsung_galaxy_s7_edge_samples_raw.dng contient les balises “Make=Samsung“ et “Model=SM-G953F“. Une recherche sur Google montre que SM-G953F est un Samsung Galaxy S7 edge
– Visualiser la liste des modèles supportés par PhotoLab , pour constater que le Galaxy S7 n’est pas dans la liste
– Choisir un modèle de remplacement dans la liste. Essayer plusieurs modèles ayant des caractéristiques proches. Si vous choisissez un Hasselblad X1D II 50C en remplacement d’un Galaxy S7 ça risque de donner de drôles de résultats 🙂
– Se procurer une photo du modèle choisi
Pour les appareils récents https:/www.photographyblog.com/,
Pour des choses plus anciennes https:/www.rawsamples.ch/index.php/en/
Il n’est pas nécessaire que ce soit un DNG, l’important est la présence des balises Exif “Make” et “Model”.


– Copier les valeurs de Make et de Model dans NotePad
– Sélectionner la photo à modifier
– Bouton “Workspace” en haut à droite.
– Cliquer le tag Make
– Coller la valeur correspondante du fichier de remplacement
– Valider et enregistrer (bouton “Save“). La valeur a été modifiée
Recommencer les trois dernières opérations sur le tag “Model“


La photo est maintenant déguisée et peut être ouverte par PhotoLab.


2- Utilisation de ExifTool en mode console

Les commandes clavier de la console sont indiquées en caractères courier.


– Sous Windows la console s’ouvre par défaut sur le dossier de l’utilisateur


– Dans notre configuration, nos photos sont sur d:, taper d: et Entrée
– Changer de dossier pour arriver au dossier contenant les photos. Commande cd suivie du chemin au dossier ici cd \exemples
– Lister les fichiers du dossier avec la commande dir. Vous devriez voir quelque chose de similaire à ceci:

Dans l’exemple ci-dessous on peut voir deux fichiers, Google_Pixel 4_sample_raw.dng et samsung_galaxy_s7_edge_samples_raw.dng.


– Pour voir le Make et “Model“ des deux fichiers taper, la commande ExifTool -l -Model -make *.dng qui signifie: “Pour chaque fichier .dng (* veut dire tout) ExifTool affiche la valeur de “Make“ et “Model“.

ExifTool renvoie quelque chose comme: 


– Visualiser la liste des modèles supportés par PhotoLab, pour constater que le Galaxy S7 n’est pas dans la liste
– Choisir un modèle de remplacement dans la liste. Essayer entre plusieurs modèles ayant des caractéristiques proches.
– Se procurer une photo du modèle choisi. Il n’est pas nécessaire que ce soit un DNG, l’important est la présence des EXIF.
– Visualiser le Make et “Model“ de RAW_SAMSUNG_GX20.DNG
– taper, la commande ExifTool -l -Model -make RAW_SAMSUNG_GX20.DNG

ExifTool renvoie quelque chose comme:


– Noter les valeurs. Au besoin, s’aider de notepad pour préparer la commande suivante.
– Pour les appliquer aux deux fichiers incompatible taper ExifTool -m -Model="SAMSUNG DIGITAL IMA" -make="SAMSUNG GX20" *.dng 
L’option -m permet d’ignorer des erreurs minimes.

L’écran doit afficher quelque chose de similaire à ceci:


Il est possible maintenant d’ouvrir ces photos dans PhotoLab .


Pour traiter tout un dossier il suffit d’indiquer son nom à la place du nom de fichier:
ExifTool -m -Model=“SAMSUNG DIGITAL IMA“ -make=“SAMSUNG GX20“ d:\exemples\


Conclusion

Changer le contenu des métadonnées “Make“ et “Model“ est très simple. La difficulté est de choisir les bonnes valeurs.
Voici quelques conseils tirés de nos expériences.

* Nous avons obtenu de meilleurs résultats en choisissant une valeur de “Make“ (marque) identique, plutôt qu’une valeur d’un appareil photo aux caractéristiques similaires mais d’un “Make“ différent.
Nous n’agissons ainsi que sur la valeur de “Model” vers un appareil photo aux caractéristiques différentes.

Un exemple est plus parlant: Il vaut mieux remplacer un
Make “Samsung”, Model “SM-G935F” (Galaxy Egde 7) par un
Make “Samsung DIGITAL IMA”, Model “SAMSUNG GX20” (Réflex) que par un
Make “Apple”, Model “iPhone S7” aux caractéristiques optiques pourtant plus proches.

* Certains codages raw ne sont pas standards, dans ce cas l’ouverture dans PhotoLab sera impossible ou dégradée.

Par exemple l’ouverture d’un fichier raw d’un Xiaomi Note 10 Pro en utilisant une balise “Make“ et “Model“ aux valeurs “Samsung DIGITAL IMA” et “SAMSUNG GX20” montre une image raw de très mauvaise qualité.

Il est même impossible à ouvrir en utilisant des valeurs Apple générant un message d’erreur “Internal error (RAW2RGBTransform_prepare) failed” dans PhotoLab (elle fait aussi planter PhotoShop)


Installation de ExifTool pour Windows

Il y a deux façons d’installer ExifTool.
– En mode autonome il suffit de décompresser ce fichier https://ExifTool.org/ExifTool-12.28.zip
– En mode installation classique avec ce fichier en 64bits ou en 32bits. Pour d’autre choix voir https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows.
Par défaut en ce mode l’installation s’effectue dans “C:\Users\”mon_nom”\AppData\Local\Programs\ExifTool”.
L’outil est accessible depuis n’importe quel dossier.


Installation de ExifToolGUI

L’interface graphique fonctionne en mode autonome. Il n’y a pas d’installation à effectuer, il suffit simplement de décompresser  https://ExifTool.org/gui/ExifToolgui516.zip et de double-cliquer sur ExifToolGUI.exe. 



Nous n’avons pas rencontré ce problème sur le portable; un caprice de Windows 10 !?


ExifTool pour MacOs

Il existe deux méthodes pour exécuter ExifTool.
– L’une utilisant ExifTool natif basé sur un terminal
– L’autre utilisant une interface graphique au-dessus d’ExifTool

Il existe deux interfaces graphiques pour ExifTool fonctionnant sous MacOS.
– SetExifToolGUI est un shareware limité à 5 fichiers pour la version gratuite.
Obtenir la version complète avec un don sur Paypal d’un minimum de 10€
– jExifToolGUI est un logiciel gratuit

Ce tutoriel est basé sur ExifTool version 12.29 et jExifToolGUI version 1.8.1. Il a été testé sur MacOS Catalina.

JExiftToolGUI s’exécute en présence de ExifTool, la version basée sur la console.


Utilisation de jExifToolGUI

– Démarrer jExifToolGUI

Dans l’illustration ci-dessous, nous avons ouvert un dossier.

 Permet de charger un dossier. Le glisser-déposer d’un dossier ne fonctionne pas.
Permet de charger un ou plusieurs fichiers. Il est également possible de glisser-déposer des fichiers dans la fenêtre Photo. Permet de charger un dossier. Le glisser-déposer d’un dossier ne fonctionne pas.
Cliquer pour afficher l’image en plein écranPermet de charger un ou plusieurs fichiers. Il est également possible de glisser-déposer des fichiers dans la fenêtre Photo.
Cliquer pour comparer les métadonnées de deux ou de plusieurs images sélectionnées.

– Modification des valeurs des balises “Make“ et “Model“
S’assurer que l’affichage des données de la barre supérieure est sélectionné en mode “View Data“.

– Sélectionner la photo souhaitée comme source de métadonnées pour “Make“ et “Model“.
La fenêtre de droite affiche beaucoup de métadonnées, toutes ne sont pas utiles.
Sélectionner alors “Common Tags“ et choisir “EXIF“ dans la liste déroulante de la barre au-dessus de la fenêtre des métadonnées

– Noter les valeurs des champs “Make“ et “Model“

– Sélectionner ensuite les fichiers image qui doivent être modifiés. Il est possible de sélectionner plusieurs images.



– Cliquer ensuite sur « Modifier les données » pour mettre à jour les balises “Make“ et “Model“.
S’assurer que la case à cocher sur la droite est sélectionnée

– Valider avec le bouton « Enregistrer dans la ou les images sélectionnées » situé en bas du programme


La photo peut être ouverte dans PhotoLab .


Autres fonctions de JExifToolGUI

JExifToolGUI peut faire bien plus que changer la marque et le modèle. Le manuel officiel est accessible ici https://hvdwolf.github.io/jExifToolGUI/manual/index.html

ExifTool peut être utilisé en mode Terminal. Son utilisation est similaire à celle de  l’Utilisation d’ExifTool en mode console de Windows. 


Installation de ExifTool pour MacOS

Télécharger ExifTool à https://ExifTool.org/ExifTool-12.28.dmg et installer le package.


Installation de jExifToolGUI


jExifToolGUI est une application Java. Elle fonctionne sous Windows, Mac et Linux. Sous Windows, nous recommandons d’utiliser l’interface graphique « officielle » ExifToolGUI.

Pour MacOS, deux programmes d’installation jExifToolGUI sont disponibles, un intégrant Java, l’autre nécessitant un environnement d’exécution Java présent sur le Mac. Nous avons utilisé la version bundle car elle est plus facile à installer et à exécuter.
Télécharger le bundle jExiftoolGUI à partir de
https://github.com/hvdwolf/jExifToolGUI/releases/download/1.8.1/jExifToolGUI-x86_64-macos-1.8.1-with_jre.dmg.zip


Pour aller plus loin

ExifToolGUI – le “Workspace”

L’espace de travail ou “Workspace”, représente le sous-ensemble des balises que vous désirez voir ou manipuler. Il y a des centaines de balises et toutes ne sont pas d’intérêt. Les balises surlignées en vert indiquent que la balise fait partie du “Workspace”


* Pour ajouter une balise au workspace Clic droit et “Add tag to workspace”

Il est possible de complètement définir un Workspace par défaut en utilisant le “Workspace Manager”.
* Cliquez le menu Program>Workspace Manager

Vous allez voir un écran similaire à ceci:


Comme on l’a vu plus haut une structure de métadonnée commence par une identification de type, soit le plus couramment TIFF, exif et XMP, suivit d’une balise (ou Tag) comme “Make“ et “Model“, suivit une valeur comme “SAMSUNG GX20” 

Dans le copie d’écran Workspace Manager:

  • La colonne de gauche, 1, montre le nom préféré de la balise et son comportement
  • La deuxième colonne indique le nom de la structure de métadonnée, ici exif,  suivit du nom de la balise
  • La troisième colonne indique soit une aide sur la ou les valeurs de la balise soit une valeur par défaut. Ci dessous l’aide s’affiche sous le champ d’entrée quand on modifie la balise Orientation dans le Workspace


En colonne 1, le nom de la balise est arbitraire, choisis comme aide mémoire, il peut ou pas être être similaire au nom de la balise en colonne deux. Il peut être suivi de quatres caractères indiquant son comportement. Source 

# -si le nom de la balise se termine par ce caractère (voir Flash# et Orientation# ci-dessus), alors le contenu de cette balise sera affiché comme d’habitude. Cependant, lors de la modification de cette balise, vous devez saisir une valeur numérique.

* -si le nom de la balise se termine par ce caractère (voir Artiste* ci-dessus), cela signifie que la valeur définie dans le texte de l’indice sera utilisée comme valeur par défaut pour cette balise. Dans ce cas, si vous faites un clic droit sur le panneau Métadonnées (en mode d’affichage Workspace), un menu contextuel apparaît et il y a l’option remplir les valeurs par défaut.
Attention toutes les valeurs par défaut définies seront appliquées pas seulement celle du champ sélectionné


? -si le nom de la balise se termine par ce caractère (voir Geotagged? ci-dessus), cela signifie que vous n’êtes pas intéressé par la valeur de la balise elle-même -ce que vous souhaitez voir, c’est si une balise particulière est définie ou non. Remarque : Vous ne pourrez pas modifier cette balise dans la vue Workspace.

On voit ici que la valeur de Geotagged est à NO, cela signifie que le fichier image ne contient aucune balise ou aucune valeur pour la balise -Gps:GPSLatitude


± -si le nom de la balise se termine par ce caractère, vous serez alors autorisé à saisir plusieurs valeurs pour une seule balise à la fois (c’est-à-dire des mots-clés et similaires). Bien sûr, vous ne pouvez utiliser cette fonctionnalité pour aucune balise, alors lisez la documentation sur les métadonnées (Iptc et Xmp) pour découvrir quelles balises prennent en charge les valeurs multiples. D’ailleurs. vous pouvez obtenir le caractère ± avec Alt+0177 (en tapant 0177 sur le clavier numérique, tout en appuyant sur la touche Alt).


Par exemple la balise -xmp-dc:Type accepte plusieures valeurs comme “Paysage+Montagne+Neige”

Workspaces Multiples

Les paramètres de ExifToolGUI sont sauvegardés dans le fichier ExifToolGUIv5.ini situé dans le même dossier que le programme. En sauvant un Workspace sous un autre nom vous pouvez obtenir plusieurs versions et les charger à souhait. Cela vous permet de gérer des configurations pour des situations différentes, lieux, sujets, événements, modèle d’appareil etc… sans avoir à refaire un Workspace à chaque fois.


Lectures des metadatas dans un fichier image

Comme mentionné précédemment un fichier image est structuré de manière particulière.
Comment ça marche ?

* Une entête, qui contient la description de la structure

* Plusieurs sous-structures de données.

Quand un éditeur comme PhotoLab lit un fichier il doit être capable d’identifier le type d’image et d’en extraire les informations. Pour PhotoLab l’image se présente comme suit


Ne vous laissez pas impressionner, le principe est simple. C’est comme une course d’orientation. Il vous faut une carte avec les instructions pour la lire, soit le standard défini, dans ce cas pour les fichiers TIFF.  Le fichier de l’image est le chemin. On sait lire la carte, on avance, chaque étape nous donne des informations et comment aller à la prochaine étape. 

Sur l’exemple au-dessus à gauche vous avez l’adresse, c’est-à- dire comme une position “GPS” dans le fichier, adresse qui commence à la valeur 0000. Ensuite la donnée en deuxième colonne, puis en troisième colonne cette donnée traduite, si possible, en quelque chose de lisible, enfin la signification de la donnée en quatrième. Dans la deuxième colonne un point représente une valeur nulle ou illisible pour l’homme. En commençant à 0000, la valeur des deux premiers bytes (0 et 1) est 49 49 suivie de 2a 00. C’est une valeur arbitraire venant du standard TIFF qui signale à l’application que ce fichier est un TIFF. Notez que les DNG et beaucoup d’autres formats comme le ARW de Sony viennent et sont identifiés comme TIFF. 

Le quatrième byte donne l’adresse du début de la structure de métadonnées,  soit le bit 8. En comptant de 0 à 8 depuis la gauche, on tombe sur la valeur 13 en Hexadécimal, (19 en décimal) et indique le nombre de champs à considérer, soit IFD0 a IFD0-18 visible en vertical dans la colonne 4. 

IFD pour “ image file directories” est le nom de la structure de base des TIFF dans lequel on trouvera les exif et XMP. IFD0-03 est le “Make“, c’est indiqué par les deux premier bytes 0-1 a l’adresse 002e, qui ont la valeur 0f-01 (on doit lire de droite à gauche soit en fait 10F0) On retrouve cette valeur dans la listes des noms de balises ici https://ExifTool.org/TagNames/EXIF.html. Les bytes 2-3 = 02, indique que le type de valeur de cette balise est alphanumérique (string),  le byte 4-7 indique la longueur soit 5, comme “SONY.”, enfin les Octet 8-11 : Si le nombre d’octets occupés est inférieur à 4, les données sont stockées directement ici. S’il y en a plus de 4, le pointeur vers les données réelles est stocké ici. Nous avons donc ici l’adresse où doit être lue la donnée dans le fichier soit 0112, que l’on retrouve plus bas 0110+2. Après avoir lu les 19 IFD et à la fin du bloc IFD0 on voit “Next IFD” avec le pointeur d’adresse e2 72 qui indique les coordonnées “GPS” de la prochaine étape. Et ainsi de suite. C’est exactement ce que fait PhotoLab


A gauche un utilitaire qui permet de tracer ce que fait PhotoLab. On vois qu’il lit le fichier image s7r.dng à l’adresse (Offset en langue informatique)  6116 sur une longueur 2c00 (en décimal 11264 bytes). A droite un éditeur de fichier hexadécimal. Si on va à l’adresse 6116 on trouve le début de la structure XMP
“<?xpacket begin…”. On retrouve cette syntaxe dans le document Adobe XMP SPECIFICATION PART 1, section “7.3.2 XMP Packet wrapper.”


TuToDxO.com – All rights reserved – tous droits réservés.

Catégories : 9 - Annexes

«             »