Guide

Photo JPEG ou PNG corrompue : image grisée, bandes de couleur ou affichage partiel

Une image qui s'affiche à moitié, couverte de blocs gris ou de bandes colorées n'est pas irrécupérable : la cause et la marche à suivre diffèrent selon qu'il s'agit d'un JPEG ou d'un PNG.

Une photo qui s’affiche partiellement, avec des blocs gris, des bandes de couleur ou une moitié d’image manquante, n’est presque jamais un fichier définitivement perdu : c’est un fichier tronqué ou partiellement écrit, et la façon dont il se comporte à l’affichage dépend directement de la structure interne du format.

JPEG : pas de vérification interne, l’image s’arrête où les données s’arrêtent

Le JPEG ne contient aucune somme de contrôle intégrée. Un décodeur lit le flux de données compressées et affiche les blocs de pixels dans l’ordre où il les rencontre ; si le fichier est tronqué avant la fin (transfert interrompu, carte mémoire retirée pendant l’écriture, copie incomplète), le décodeur s’arrête simplement à cet endroit, laissant le reste de l’image gris ou noir. C’est pour cela qu’une photo JPEG corrompue affiche souvent une partie nette et une partie manquante, sans message d’erreur explicite.

Le comportement diffère selon l’encodage : un JPEG progressif (plusieurs passes qui affinent l’image du flou au net) donne un aperçu flou mais complet même tronqué, tandis qu’un JPEG baseline (une seule passe, ligne par ligne) s’arrête net à l’endroit de la troncature. La plupart des appareils photo et smartphones récents produisent du baseline ; le progressif est plus fréquent en sortie d’export web.

PNG : un CRC par bloc, donc un refus plus net

Un fichier PNG est découpé en blocs (chunks) et chacun embarque son propre CRC, une somme de contrôle calculée sur son contenu. Un visualiseur qui recalcule ce CRC et obtient une valeur différente sait avec certitude qu’un bloc est corrompu, ce qui explique pourquoi un PNG endommagé a plus souvent tendance à refuser complètement l’affichage plutôt que de montrer une image partielle comme un JPEG : le décodeur préfère signaler l’erreur plutôt que d’afficher un contenu dont il sait qu’il est invalide.

Que faire

  1. Comparer la taille du fichier reçu à celle attendue si elle est connue (une taille anormalement petite confirme une troncature).
  2. Retélécharger ou redemander le fichier plutôt que d’essayer de réparer une copie tronquée : sans les octets manquants, aucun outil ne peut reconstituer les données perdues.
  3. Si le fichier vient d’une carte mémoire ou d’un disque qui a été débranché brutalement, vérifier qu’aucun autre fichier du même lot n’est affecté avant de réutiliser le support.
  4. En cas de doute sur le format réel derrière une extension renommée, l’identifieur de fichier lit la signature binaire réelle indépendamment du nom.

Identifier le format réel du fichier →

Formats concernés

Catégories concernées

Voir aussi

Questions fréquentes

Pourquoi une photo JPEG s'affiche-t-elle à moitié, avec le bas de l'image gris ou manquant ?

Le JPEG ne contient aucun mécanisme de vérification d'intégrité intégré : un décodeur affiche les blocs de l'image dans l'ordre où il les lit et s'arrête simplement là où le flux de données devient invalide, le plus souvent parce que le fichier a été tronqué avant la fin de l'enregistrement ou du transfert.

Pourquoi un PNG corrompu refuse-t-il de s'ouvrir alors qu'un JPEG corrompu s'affiche partiellement ?

Chaque bloc (chunk) d'un fichier PNG embarque son propre CRC (somme de contrôle) : un visualiseur qui détecte une incohérence sur un chunk peut refuser tout l'affichage plutôt que de montrer une image partielle, contrairement au JPEG qui ne dispose pas de ce garde-fou et affiche ce qu'il a pu décoder avant l'erreur.

Un JPEG progressif corrompu se comporte-t-il différemment d'un JPEG standard ?

Oui : un JPEG progressif encode l'image en plusieurs passes qui affinent progressivement la netteté, ce qui donne un aperçu flou mais complet même si le fichier est tronqué en cours de transfert, alors qu'un JPEG standard (baseline) affiche l'image ligne par ligne et s'arrête net au point de troncature.

Sources

Dernière mise à jour :