6 votes

Comment réparer un fichier jpeg endommagé sur Windows ?

Récemment, j'ai stupidement supprimé quelques photos que je n'aurais pas dû. J'ai utilisé un programme pour récupérer les photos, certaines d'entre elles sont revenues dans un état corrompu avec des zones grises comme ci-dessous.

Une idée sur comment résoudre ce problème ? Les informations sont clairement présentes sous une forme quelconque, car lorsque je visualise les photos avec l'application Visionneuse de photos Windows, l'image complète est brièvement affichée pendant une fraction de seconde pendant que Windows génère l'aperçu.

image corrompue

6voto

harrymc Points 394411

Certaines grandes images contiennent une miniature plus petite qui est une version en basse résolution de l'image entière.

Cette petite image à l'intérieur de l'image est utilisée par certains programmes, tels que l'Explorateur Windows lors de l'affichage de l'image en mode icône. Sinon, afficher l'icône de l'image nécessiterait de lire l'intégralité de l'image et de la convertir en taille d'icône, ce qui ralentirait de manière inacceptable l'affichage du dossier.

Je suppose que Visualiseur de photos Windows affiche cette miniature de manière conviviale, tout en lisant la plus grande image. Cependant, cette image plus grande est endommagée, et seule la miniature a survécu intacte.

Recuva est un bon programme de récupération de photos, donc je suppose que les dommages sont causés par votre écrasement de cette partie de l'image. Vous ne devriez jamais écrire des données sur un volume que vous souhaitez récupérer.

Cependant, si ce volume est encore raisonnablement intact, vous pouvez également essayer un autre très bon produit de récupération de fichiers:
PC INSPECTOR File Recovery
mais n'oubliez pas de copier les images récupérées sur un autre volume, sinon en récupérant une image vous pourriez en détruire une autre.

Pour réparer les images JPEG endommagées, consultez ce fil de discussion : Corrupt jpegs, thumbnail extracted....
Il recommande plusieurs outils de ce type, ainsi que des outils d'extraction de miniatures.
ExifTool semble particulièrement bon.

0voto

Joep van Steen Points 111

Divulgation : Il y a quelques années, on m'a demandé s'il était possible de réparer un tel fichier et j'ai décidé d'enquêter. En conséquence, j'ai pu trouver comment je pouvais réparer le fichier et cela m'a finalement amené à écrire quelques outils (non gratuits) que je mentionnerai dans ce post. Chaque fois que possible, je pointerai vers des alternatives gratuites.

Avertissement : Avec les JPEG, beaucoup de mathématiques sont impliquées. Je ne suis pas un expert formé ou scolarisé en la matière et une grande partie de ce que j'explique, je l'ai découvert en bricolant et en trouvant ce qui fonctionne. Donc, ne vous attendez pas à ce que toutes ces informations soient scientifiquement exactes.

Cela dépend. Si nous voyons une image comme ça, 3 choses peuvent être incorrectes :

  1. Seule une partie du fichier est récupérée ou présente (si elle n'est pas récupérée par un outil quelconque). Pour déterminer si c'est le cas, comparez la taille du fichier avec des fichiers similaires, pris avec le même appareil photo et les mêmes réglages.
  2. Si la taille du fichier est bonne, une partie du fichier peut ne pas contenir de données correctes. Cela est plus facile à vérifier avec un éditeur hexadécimal (HxD par exemple, gratuit). Souvent, vous trouverez une grande partie du fichier remplie de zéros ou d'un motif de répétition de bytes (FF FF FF FF etc.).
  3. Si les problèmes précédents sont vérifiés, que la taille du fichier est bonne et qu'il y a des données d'entropie élevée dans tout le fichier, même une corruption mineure dans les données d'image encodées et compressées peut perturber un décodeur (celui qui est intégré dans votre visionneuse d'images).

Étant donné que le scénario 3 est le seul qui peut potentiellement être réparé, plongeons-y. Il existe des combinaisons spécifiques de bytes ayant une signification pour les décodeurs JPEG : FF xx est interprété par les décodeurs JPEG comme un marqueur JPEG (voir). Ces marqueurs servent à diviser un JPEG en 'sections' toutes ayant des finalités différentes. Si le décodeur rencontre une paire de bytes FF xx à l'intérieur des données d'image réelles qui n'est pas valide (pas FF Dn (où n = 0 à 7) et pas FF 00), la plupart des décodeurs s'arrêteront simplement de décoder. Cela peut résulter d'une simple 'inversion de bits' où FE devient FF. Puisque la partie des données d'image n'est pas décodée, cela se manifestera sous forme de bloc gris. Supprimer la paire de bytes en question n'est qu'une partie de la solution car nous ne connaissons pas les valeurs originales, mais j'ai pu réparer des images en utilisant simplement un éditeur hexadécimal et une visionneuse d'images. En utilisant JpegSnoop, il est facile de déterminer l'adresse des bytes problématiques. Cependant, en raison de la façon dont un JPEG est encodé/décodé, ce problème affecte l'ensemble des données d'image qui suit (pour simplifier, les données de luminance et de chrominance sont stockées en tant que delta, c'est-à-dire la différence par rapport au bloc précédent). Pour réparer les dommages, vous voudrez peut-être utiliser un éditeur spécial (dans cette vidéo YouTube, j'utilise le mien et un éditeur gratuit pour voir si et comment un JPEG partiellement gris peut être réparé). Très peu de fois, il se peut que le simple fait de remplacer les bytes problématiques par des zéros donne un résultat satisfaisant :

réparer un JPEG en utilisant simplement un éditeur hexadécimal

Pour le scénario 2, il n'y a pas de solution. Le problème 1 peut être causé par une récupération incorrecte :

  1. Outil de récupération conscient du système de fichiers : En termes simples, ces outils se basent sur la recherche de morceaux de données du système de fichiers pour localiser les données perdues. En supposant un système de fichiers basé sur FAT, car ils sont dominants sur les cartes mémoire utilisées dans les appareils photo numériques, l'outil localise une entrée de répertoire à partir de laquelle il peut décoder le nom de fichier, la taille du fichier, les attributs du fichier et le premier cluster. Il examine ensuite la table d'allocation du fichier pour obtenir le reste des clusters et reconstitue finalement le fichier. Si la chaîne FAT est corrompue / incomplète pour une raison quelconque, seule une partie du fichier peut être reconstituée. Ce type de corruption n'est pas rare dans les systèmes de fichiers basés sur FAT (FAT, FAT32 et dans une certaine mesure exFAT). La récupération est souvent encore possible en utilisant un soi-disant carver, mais ceux-ci apportent leur propre ensemble de problèmes.

  2. L'autre catégorie d'outils de récupération de fichiers sont les dits 'carvers'. Plutôt que de se fier au système de fichiers, ils analysent le disque pour trouver des 'bytes magiques' qui peuvent indiquer la présence d'un certain type de fichier. En supposant un JPEG, on pourrait balayer le disque à la recherche de FF D8 FF aux limites de cluster ou de secteur, car les JPEG commencent toujours avec cette combinaison de bytes spécifique. Maintenant nous savons où commence le fichier.

Problèmes avec cette méthode : De nombreux outils sont assez simplistes et supposeront avoir atteint la fin du JPEG s'ils rencontrent FF D9 qui est le 'marqueur de fin d'image JPEG' ou s'ils rencontrent des bytes magiques qui pourraient indiquer le début du fichier suivant. Beaucoup de ces prétendus scanners recherchent plusieurs types de fichiers et par pure coïncidence peuvent rencontrer une combinaison de bytes qui correspond à un autre type de fichier. Par exemple, 49 44 33 est des données JPEG parfaitement valides mais correspondent également aux bytes magiques d'un fichier MP3. L'approche simpliste est alors de conclure que nous avons atteint la fin du fichier et de commencer à récupérer le fichier MP3. Le deuxième problème est la fragmentation des fichiers, où avant la fin du fichier est atteinte, une combinaison de bytes valide est trouvée pour le fichier JPEG suivant. Beaucoup de carvers vont fermer le JPEG qu'ils étaient en train de récupérer et commencer avec le suivant. Il n'y a pas de solutions faciles à cela, bien que des outils existent qui vous permettent soit de tenter manuellement de reconstituer de tels fichiers, soit même d'essayer de le faire eux-mêmes.

réassemblage manuel d'un JPEG fragmenté

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X