Nettoyer les métadonnées d'une photo : ce qui part vraiment
Publié le 26/08/2026 · 15 min de lecture · Outils image & design
Daniel Okonkwo — Développeur front-end et rédacteur Tech chez OneKitly
Performance web · Formats de fichiers
Vérifié à partir de 3 sources
Il enlève tout, et il le fait en ne regardant pas du tout les métadonnées. L'outil décode la photo, la peint sur un canvas et réencode les pixels en JPEG à la qualité 0,92 — le conteneur, et tous les blocs qui y sont attachés, sont purement et simplement jetés. Nous l'avons testé avec un fichier volontairement chargé de six sortes de métadonnées : un bloc EXIF avec marque et modèle du boîtier, logiciel de retouche, horodatage, réglages d'exposition, numéro de série du boîtier, modèle d'objectif et position GPS, plus une vignette de 5 628 octets cachée dans ce bloc EXIF, un paquet XMP, un enregistrement IPTC dans un bloc de ressources Photoshop, un profil ICC et un simple commentaire. La sortie n'en a rien gardé. En cherchant dans les octets exportés quatorze chaînes distinctes de l'original — le numéro de série, le nom de l'objectif, le photographe, la légende, l'horodatage, les coordonnées — on trouve zéro correspondance, et les données d'image de la vignette cachée ont disparu elles aussi. La rotation est traitée correctement : un fichier marqué comme pivoté est ressorti droit, l'étiquette supprimée. Les coûts sont réels, toutefois. L'image est réencodée : elle perd donc un peu de qualité à chaque fois — un passage a mesuré 46,2 décibels de rapport signal sur bruit face à l'original, six passages tombent à 38,5. La sortie est toujours un JPEG, si bien qu'un PNG perd sa transparence, aplatie sur du noir. Et un fichier HEIC — le format par défaut d'un iPhone — échoue complètement au décodage, sans message d'erreur, donc il ne se passe rien du tout.
Un JPEG peut porter six blocs de métadonnées distincts, pas un. Nous avons fabriqué un fichier les contenant tous — coordonnées, numéro de série du boîtier, vignette cachée, XMP, IPTC, commentaire — l'avons passé au nettoyeur, et avons lu la sortie octet par octet pour voir ce qui subsistait.
Un fichier photo n'a pas un bloc de métadonnées, il en a six
Presque tout le monde dit EXIF en pensant métadonnées, et c'est là que les ennuis commencent. EXIF est un bloc parmi plusieurs, et un JPEG est une suite de segments étiquetés qui peuvent chacun contenir autre chose. Il y a le segment JFIF avec des informations de densité. Il y a le bloc EXIF lui-même, qui porte la marque et le modèle du boîtier, le logiciel de retouche, l'horodatage, les réglages d'exposition, parfois le numéro de série et l'objectif, et — dans un sous-répertoire distinct — la position GPS. Il y a XMP, un paquet XML que les logiciels d'édition utilisent pour leurs propres champs. Il y a un enregistrement IPTC, généralement emballé dans un bloc de ressources Photoshop, portant légendes, signatures et droits. Il y a un profil colorimétrique ICC. Et il y a un segment de commentaire libre où n'importe quoi peut écrire.
Celui qu'il faut connaître est caché dans EXIF plutôt qu'à côté : une seconde copie complète de l'image, en taille de vignette, stockée pour qu'un appareil affiche un aperçu instantané. Dans le fichier de test que nous avons fabriqué, cette vignette faisait 5 628 octets de vrai JPEG. C'est important parce qu'un outil qui modifie l'image principale et ne réécrit que les étiquettes qu'il connaît peut laisser la vignette intacte — et la petite version montre alors encore la scène telle qu'elle était avant que tu ne recadres, redresses ou masques quelque chose. D'autres formats ont leurs propres dispositifs : un PNG range du texte dans des blocs tEXt, zTXt et iTXt et peut porter un bloc EXIF entier dans un bloc eXIf, tandis que HEIC et WebP enveloppent leurs propres conteneurs autour des mêmes types d'enregistrements.
Quant à la valeur du champ de position : les coordonnées sont stockées en trois nombres rationnels — degrés, minutes et secondes — et le champ des secondes porte des fractions. Un fichier écrit au centième de seconde d'arc situe à environ 30 centimètres près au sol. Ce n'est pas le quartier, c'est la pièce. Combine cela avec l'horodatage exact, enregistré à la seconde, et une photo d'enfant à la maison devient une adresse et une habitude.
Deux façons de l'enlever, et elles ne se valent pas
La première est chirurgicale : ouvrir le conteneur, parcourir la liste des segments, supprimer ceux dont on ne veut pas, et réécrire les données d'image compressées sans y toucher. Rien n'est décodé, rien n'est réencodé, et les pixels qui sortent sont bit pour bit ceux qui sont entrés. C'est ainsi que travaille un éditeur de métadonnées, et c'est la bonne approche quand la qualité compte. Sa faiblesse est qu'elle ne retire que ce qu'elle sait chercher : un segment inconnu, un bloc propre au constructeur, un enregistrement imbriqué qu'elle n'analyse pas, tout cela survit par défaut.
La seconde est brutale et c'est celle de cet outil : décoder l'image en pixels bruts, dessiner ces pixels sur un canvas, et demander au navigateur de sérialiser le canvas en nouveau fichier. La norme du navigateur décrit cette sortie comme une sérialisation du bitmap du canvas, et un bitmap n'est rien d'autre que des valeurs de couleur — il n'y a nulle part où ranger un numéro de série de boîtier ou une vignette cachée, car la structure qui les portait a été jetée plusieurs étapes plus tôt. C'est pourquoi cette approche ne peut rien manquer : ce n'est pas une liste de choses à supprimer, c'est un refus de copier autre chose que l'image.
Ce qui est réellement parti
Nous avons fabriqué un fichier qui portait tout cela et l'avons passé au traitement. La source était un JPEG de 800 sur 600 d'environ 60 kilo-octets, contenant un segment JFIF, un bloc EXIF complet avec marque, modèle, logiciel de retouche, horodatage, temps de pose, ouverture, sensibilité, numéro de série du boîtier, modèle d'objectif et position GPS avec altitude, une vignette de 5 628 octets à l'intérieur de ce bloc EXIF, un paquet XMP nommant un photographe et une ville, un enregistrement IPTC avec légende et signature, un profil colorimétrique, et un commentaire indiquant que le fichier était un brouillon interne à ne pas diffuser.
La sortie nettoyée pesait environ 58 kilo-octets et contenait quatre choses : le segment JFIF, un profil colorimétrique, les tables de compression et les données d'image. Rien d'autre. Nous avons ensuite cherché directement dans les octets exportés quatorze chaînes tirées de l'original — le fabricant, le modèle, le logiciel de retouche, le numéro de série, le nom de l'objectif, le nom du photographe, la légende, le commentaire de non-diffusion, les marqueurs XMP, le mot Exif lui-même, l'horodatage et la forme numérique des coordonnées. Aucune n'apparaît. La vignette cachée a disparu elle aussi : la seule séquence d'octets commune aux deux fichiers est l'en-tête standard que porte toute image encodée par ce navigateur, et elle s'arrête bien avant que commencent les données d'image de la vignette.
Une chose est conservée à dessein, et c'est la bonne. Appareils et téléphones stockent très souvent l'image dans l'orientation du capteur et ajoutent une étiquette disant comment la tourner. Si l'on supprimait l'étiquette en gardant les pixels, toutes les photos verticales sortiraient couchées. Nous avons testé une version du fichier marquée comme nécessitant un quart de tour : le navigateur a appliqué la rotation avant même que le canvas la voie, si bien que le fichier nettoyé mesure 600 sur 800 au lieu de 800 sur 600 et se tient droit, sans étiquette à interpréter. C'est exactement le comportement souhaité, et cela vaut la peine d'être vérifié, car les outils qui suppriment les étiquettes sans décoder se trompent constamment là-dessus.
Ce que coûte le réencodage
La rigueur s'achète en qualité. Comme l'image est décodée puis recompressée, la sortie n'est pas l'image d'origine — c'est une nouvelle approximation avec perte. Sur notre fichier de test, un passage a mesuré 46,2 décibels de rapport signal sur bruit face à la source, avec une erreur maximale de 18 sur 255 sur un canal. En clair, c'est invisible à l'écran et cela survivrait à une impression. Ce n'est pas rien pour autant, et ce n'est pas gratuit : une suppression chirurgicale des métadonnées obtiendrait l'infini, puisqu'elle ne change aucun pixel.
Ce qu'il faut surveiller, c'est la répétition. La perte se cumule, car chaque passage part de l'approximation du précédent et non de l'original. Nous avons repassé le fichier nettoyé cinq fois de plus : le rapport signal sur bruit face à l'original est tombé de 46,2 à 38,5 décibels, et l'erreur maximale sur un canal est passée de 18 à 53 sur 255. C'est la différence entre invisible et visible dans un ciel uni ou un teint de peau. Nettoie donc une fois, à la fin de tes retouches, sur le fichier que tu t'apprêtes à envoyer — pas par habitude, et pas sur un fichier que tu retoucheras encore ensuite.
Où ça casse : photos d'iPhone, transparence et couleur
La lacune importante, c'est HEIC. C'est le format de capture par défaut sur iPhone, et les navigateurs de bureau ne savent généralement pas le décoder. Nous avons donné un vrai fichier HEIC : le décodeur d'image a échoué net — et comme l'outil n'a aucun gestionnaire pour cet échec, il ne se passe absolument rien : pas d'image nettoyée, pas de bouton de téléchargement, aucun message. Un utilisateur qui ignore que le format n'est pas pris en charge conclura raisonnablement que la page est cassée, ou pire, ne le remarquera pas et supposera que le travail est fait. Convertis d'abord en JPEG, ou exporte depuis le téléphone en JPEG plutôt que de partager la capture d'origine.
La seconde surprise est que la sortie est toujours un JPEG, quelle que soit l'entrée. Donne-lui un PNG et tu récupères un JPEG, extension changée pour toi. C'est très bien pour une photographie et faux pour tout ce qui a de la transparence : le JPEG n'a pas de canal alpha, les pixels partiellement transparents sont donc aplatis sur un fond. Nous l'avons mesuré sur un PNG dont la moitié droite était à demi transparente : les pixels exportés sont revenus entièrement opaques et bien plus sombres, composés sur du noir. Un logo, une capture d'écran à coins arrondis ou un détourage de produit ne survivra pas intact. La couleur subit le même traitement : le canvas travaille dans l'espace sRGB standard et le fichier exporté porte le profil sRGB du navigateur, écrit même quand l'entrée n'avait aucun profil — une photo à large gamut ressort donc convertie plutôt que préservée.
Où ça fuit, et quand une capture d'écran est la bonne réponse
La fuite n'est presque jamais le réseau social. Les grandes plateformes réencodent ce que tu téléverses, surtout pour économiser de la bande passante, et les métadonnées disparaissent comme effet de bord — mais c'est une conséquence de leur chaîne de traitement, pas une promesse qui t'est faite, et cela varie selon la plateforme et le chemin d'envoi. Les fuites fiables sont les routes où personne ne réencode rien : un fichier joint à un e-mail, une photo déposée dans une conversation en tant que document et non comme image, un envoi vers un forum ou un site d'annonces qui stocke ce qu'on lui donne, un fichier remis sur une clé, une image publiée sur un petit site tournant sur un logiciel du commerce. Dans chacun de ces cas, les octets que tu envoies sont les octets qui arrivent, vignette et coordonnées comprises.
Et oui, une capture d'écran fonctionne réellement — pour une photo. Capturer l'écran produit un fichier neuf fait uniquement des pixels visibles, sans aucun des blocs d'origine attachés, et cela prend deux secondes. Cela jette aussi de la résolution, puisque tu captures l'image à la taille où elle était affichée et non à sa taille native, et cela ne passe pas à l'échelle : deux cents photos de vacances font deux cents opérations manuelles et un dossier de copies à la taille de l'écran. C'est la frontière honnête entre les deux réponses. Une image, et le plus rapide qui soit correct est une capture d'écran. Plus d'une poignée, et il te faut un outil qui fasse le même travail sur tout le lot sans que tu regardes.
| Bloc | Ce qu'il peut contenir | A survécu au nettoyeur ? |
|---|---|---|
| EXIF, répertoire principal | Marque et modèle du boîtier, logiciel de retouche, date et heure, orientation | Non — tout est parti |
| EXIF, sous-répertoire boîtier | Exposition, ouverture, sensibilité, modèle d'objectif, numéro de série du boîtier | Non — tout est parti |
| EXIF, sous-répertoire GPS | Latitude, longitude et altitude, à bien moins d'un mètre près | Non — tout est parti |
| Vignette EXIF | Une seconde copie complète de l'image, en taille d'aperçu | Non — les données d'image ont disparu |
| Paquet XMP | Historique de retouche, auteur, ville, mots-clés, champs personnalisés arbitraires | Non — tout est parti |
| Enregistrement IPTC dans un bloc Photoshop | Légende, signature, crédit, droits et conditions d'usage | Non — tout est parti |
| Segment de commentaire libre | Tout texte qu'un programme a choisi d'écrire, comme une note interne | Non — tout est parti |
| Profil colorimétrique ICC | L'espace colorimétrique dans lequel lire les valeurs de pixel | Remplacé — le profil source part, un profil standard est écrit |
| Blocs texte et EXIF du PNG | Les mêmes sortes d'enregistrements, dans un PNG et non un JPEG | Non — mais le fichier revient en JPEG, sans transparence |
Questions fréquentes
- Supprime-t-il vraiment la position GPS ?
- Oui. Les coordonnées GPS vivent dans un sous-répertoire du bloc EXIF, et le bloc EXIF n'est pas modifié — il est jeté avec tout le conteneur d'origine au moment où les pixels sont réencodés. Dans notre test, la source contenait une latitude, une longitude et une altitude ; chercher la forme numérique de ces valeurs dans le fichier nettoyé ne renvoie rien, pas plus que chercher le mot Exif lui-même. Rien concernant la position ne peut survivre à un traitement qui ne copie que des valeurs de couleur.
- La vignette cachée survit-elle ?
- Non — et cela vaut la peine d'être vérifié, car c'est là que d'autres outils échouent. Un nettoyeur qui modifie les étiquettes sur place peut laisser la vignette intacte, et cette vignette peut montrer la scène avant que tu ne recadres ou ne masques quelque chose. Ici la vignette ne peut pas survivre : elle vit à l'intérieur du bloc EXIF, et le bloc EXIF n'est jamais copié. Nous l'avons confirmé en comparant les deux fichiers octet par octet — la plus longue séquence commune est l'en-tête standard que porte toute image de ce navigateur, et elle s'achève avant l'endroit où commenceraient les données d'image de la vignette.
- Le nettoyage fait-il perdre en qualité ?
- Un peu, et une seule fois si tu l'utilises une seule fois. L'outil décode la photo et la recompresse : la sortie est donc une nouvelle version avec perte. Mesuré face à notre source, un passage unique donne 46,2 décibels de rapport signal sur bruit avec une erreur maximale de 18 sur 255 sur un canal — invisible en visionnage normal. Les passages répétés se cumulent : après six, le rapport était tombé à 38,5 décibels et l'erreur maximale montée à 53. Nettoie donc une fois, sur la copie que tu t'apprêtes à envoyer, et garde ton original intact ailleurs.
- J'ai chargé une photo de mon iPhone et rien ne s'est passé. Pourquoi ?
- Presque certainement parce que le fichier est un HEIC, ce que capture un iPhone par défaut et que les navigateurs de bureau ne savent en général pas décoder. Nous l'avons reproduit avec un vrai fichier HEIC : le décodeur échoue, et l'outil n'a aucun gestionnaire pour cet échec, si bien que la page ne fait tout simplement rien — pas d'image, pas de téléchargement, pas d'erreur. Convertis d'abord le fichier en JPEG, ou change le réglage de l'appareil pour que le téléphone capture dans le format le plus compatible, ou partage la photo via une application qui convertit à l'export.
- Comment vérifier moi-même qu'un fichier est propre ?
- Ne te fie pas au panneau d'informations de ton système : il affiche une sélection de champs, pas tout ce qui est présent, et un bloc qu'il ne comprend pas n'apparaîtra tout simplement pas. Deux vérifications plus fiables : ouvre le fichier dans un lecteur de métadonnées qui liste les segments bruts plutôt que des libellés aimables, ou compare les tailles, car une photo qui rétrécit nettement après nettoyage portait une vignette cachée. Et contrôle ce que tu as réellement envoyé plutôt que ce que tu as nettoyé — le fichier qui quitte ta machine est celui qui compte, et les messageries réencodent ou rattachent parfois en chemin.
Articles qui pourraient t'intéresser
Tous les guides →Outils similaires
Le comportement décrit ici a été mesuré en août 2026 sur un fichier de test que nous avons fabriqué nous-mêmes, dans un seul moteur de navigateur ; d'autres navigateurs encodent différemment et les logiciels évoluent, alors vérifie ton propre fichier exporté plutôt que de te fier à une description. Supprimer les métadonnées n'est pas anonymiser une photographie — l'image elle-même peut identifier une personne, un lieu ou un document, et aucun nettoyeur de métadonnées ne traite cela.
Sources
- CIPA — Standards list — DC-008, Exchangeable image file format for digital still cameras (Exif), current version 3.1
- W3C — PNG Specification (Third Edition) — tEXt, zTXt, iTXt and eXIf chunks
- WHATWG — HTML Standard, the canvas element — toDataURL and toBlob serialise the canvas bitmap; default colour space sRGB
Tu as repéré une erreur dans cet article ?