Atomic Bird

Mon Blog à moi

Réparer les données EXIF d'un DNG...

...issu d'un NEF sauvé avec Nikon Capture NX.

Posté le 05 octobre 2011 à 00h44 - Catégories :: Bricolage :: Photographie :: Version PDF Publier cet article sur Facebook Partager cet article sur Twitter

Je le dis tout de suite : NON, cet article n'explique pas comment on peut récupérer les traitements effectués et enregistrés dans une photo au format NEF après passage en DNG, désolé.

J'ai enfin réussi ce soir à résoudre un problème qui m'enquiquinait depuis pas mal de temps, donc autant en faire partager d'autres.

Je fais de la photo numérique. J'ai un Nikon et j'utilisais au départ le logiciel Nikon Capture NX pour le post-traitement et l'exportation. Je travaillais donc avec les fichiers NEF, format propriétaire de Nikon.
Puis j'ai découvert Adobe Lightroom qui m'a rapidement séduit par sa philosophie et sa rapidité. J'ai donc décidé de franchir le pas, je suis passé chez Adobe et j'en ai profité pour convertir tout mon stock (qui n'était pas bien gros) en DNG, leur format open-source (pour diverses raisons qu'il est inutile d'aborder ici). Jusque là, tout va bien.

Ensuite, l'envie m'a pris de géotagger mes photos, afin d'avoir directement la position de chacune, j'ai donc utilisé GeoSetter, un petit logiciel gratuit qui s'avère diablement pratique. Il nous donne la possibilité d'ajouter la position géographique via une interface GoogleMaps (et plein d'autres trucs totalement déments, comme la possibilité d'utiliser le fichier log d'un traceur GPS avec de tagger automatiquement les photos en fonction de l'heure, et ça marche bien !).

Et soudainement, paf, tracas. Certaines de mes photos font planter GeoSetter sans raison apparente. :(

En fait si, il y a une raison que j'ai mis du temps à trouver : Il s'agit des photos que j'ai préalablement modifiées dans Nikon Capture.
Ce qu'il se passe c'est que lors de l'enregistrement du fichier dans Nikon Capture, des informations sont ajoutées dans le fichier NEF (puisque le logiciel n'a pas besoin de passer par un fichier xml externe pour stocker les opérations effectuées sur son propre format de fichier). Il rajoute donc des trucs de ce style-là, au beau milieu d'une mélasse d'octets illisibles :

<historystep>
	<version>20</version>
	<feather>0</feather>
	<featherEnabled>false</featherEnabled>
	<baseFill>0</baseFill>
	<baseFillEnabled>true</baseFillEnabled>
	<paintToolsEnabled>true</paintToolsEnabled>
	<mixerEnabled>false</mixerEnabled>
	<filter id="nik::AdaptivePaste">
		<active>true</active><parameters><integer name="BrushSize">40</integer><integer name="BrushSize[0]">20</integer><integer name="InvalidRect.maxX">1854</integer><integer name="InvalidRect.maxY">1275</integer><integer name="InvalidRect.minX">1770</integer><integer name="InvalidRect.minY">1199</integer><stroke name="Points"><strokePoint x="1832" y="1220" p="1.000000" /></stroke><integer name="StrokeCount">1</integer><stroke name="Stroke[0]"><strokePoint x="1791" y="1253" p="1.000000" /><strokePoint x="1826" y="1227" p="1.000000" /><strokePoint x="1829" y="1224" p="1.000000" /><strokePoint x="1830" y="1223" p="1.000000" /><strokePoint x="1831" y="1221" p="1.000000" /><strokePoint x="1832" y="1220" p="1.000000" /></stroke><integer name="Version">1</integer><integer name="nik.BlendingMode">0</integer><integer name="nik.ChannelMode">0</integer><integer name="nik.MixerActive">0</integer><integer name="nik.Opacity1">100</integer><integer name="nik.Opacity2">100</integer><integer name="nik.Opacity3">100</integer></parameters></filter>

À la conversion en DNG, ces informations sont conservées, sans qu'on sache trop pourquoi puisqu'elles sont devenues inutiles. Et lorsque GeoSetter (ou plus exactement ExifTool, le module dont se sert GeoSetter pour manipuler les données) veut modifier les informations EXIF de ce fichier DNG "hybride", il se fracasse tête la première dans cette masse d'informations parasites. Poum, plantage.

Damn'. Voilà qui est fâcheux.

HEUREUSEMENT, on peut pallier ce problème grâce à un super soft appelé... ExifTool. Eh oui grâce à ce même soft qui plante on peut réparer les données foireuses et avoir de nouveau un fichier sain.
Alors comment faire ? Pour commencer, récupérer ExifTool sur le site du créateur.
Après l'avoir lancé en ligne de commande, on entre la ligne suivante :

exiftool -all= -tagsfromfile @ -all:all "mon_image_foireuse.dng"

Et le logiciel va s'affairer à réparer les décalages ou les mauvaises entrées dans les données de votre image DNG, afin que tout rentre dans l'ordre.
Pas d'inquiétude, ExifTool fait une copie de sauvegarde du fichier avant toute modification (l'ancien fichier se voit doté du suffixe _original).
Au final, on se retrouve avec un fichier identique, mais surtout épuré des informations parasites de Nikon Capture.

Banco.

PS : Vous remarquerez la structure très "film américain" de mon article où je tease et rallonge la sauce pendant les 3/4 du temps pour un final pourri expédié en 3 lignes. Michael Bay accroche-toi à ton slip, j'arrive.

1 commentaire sur cet article

  • Commentaire de ben
    Posté le 05 octobre 2011 à 12h25
    Très bon, monsieur chupon, vous démontrez une fois de plus l'étendue de vos nombreux talents.

    Nul doute que vos recherches vous permettront un jour de trouver "comment on peut récupérer les traitements effectués et enregistrés dans une photo au format NEF après passage en DNG" !

    D'avance, un grand merci :)
Poster un commentaire

Nom

Email (optionnel, ne sera pas publié)

Site web (optionnel)

Commentaire (HTML non autorisé)


Se souvenir de mes infos ?

Veuillez entrer les caractères suivants (lettres majuscules uniquement) :

 

 

Page générée en 1.311 battements cardiaques d'un oiseau-mouche en forme. Fascinant ! [65 millisecondes]

© 2006 - 2017 - Design et code de Chupon.