如何修复 Windows 上损坏的 jpeg 文件?

如何修复 Windows 上损坏的 jpeg 文件?

最近我愚蠢地删除了一些不该删除的照片。我用了一个程序恢复照片时,一些照片已经损坏,如下图所示,并带有灰色区域。

有什么办法可以解决这个问题吗?信息以某种形式清晰地存在,因为当我使用 Windows 照片查看器查看照片时,完整的图像会在 Windows 生成预览的几分之一秒内短暂显示。

图像损坏

答案1

一些较大的图像包含较小的缩略图,即整个图像的低分辨率版本。

一些程序会使用这种较小的“图像内的图像”,例如 Windows 资源管理器在图标视图中显示图像时。否则,要显示图像的图标,就需要读取整个图像并将其转换为图标大小,这会不可接受地减慢文件夹的显示速度。

我猜想 Windows 照片查看器在读取大图的同时以用户友好的方式显示缩略图。然而,大图已损坏,只有缩略图完好无损。

Recuva 是一款出色的照片恢复程序,因此我猜想损坏是由于您覆盖了图像的那部分而造成的。您永远不应该将数据写入您想要恢复的卷。

但是,如果该卷仍然相当完整,您还可以尝试另一个非常好的文件恢复产品:
PC INSPECTOR 文件恢复
但请记住将恢复的图像复制到其他卷,否则在恢复一个图像时可能会破坏另一个图像。

要修复损坏的 JPEG 图像,请参阅此主题:损坏的 jpeg,缩略图已提取......
里面推荐了不少这样的工具,还有缩略图提取工具​​。
Exif工具看上去特别好。

答案2

披露:几年前,有人问我是否可以修复这样的文件,于是我决定进行调查。结果,我找到了修复文件的方法,这最终促使我编写了一些(非免费)工具,我将在这篇文章中提到这些工具。只要有可能,我就会指出免费的替代方案。

免责声明:JPEG 涉及大量数学知识。我不是这方面的专家,我所解释的很多内容都是我通过不断摸索和寻找“什么方法有效”而发现的。所以,不要指望所有这些信息都是科学正确的。

视情况而定。如果我们看到这样的图像,可能有 3 件事出错了:

  1. 仅部分文件被恢复或存在(如果未通过某些工具恢复)。要确定是否是这种情况,请将文件大小与使用相同相机和设置拍摄的类似文件进行比较。
  2. 如果文件大小正常,则文件的一部分可能不包含正确的数据。使用十六进制编辑器(例如免费的 HxD)检查最容易。通常,您会发现文件的大部分内容都是零或一些重复的字节模式(FF FF FF FF 等)。
  3. 如果检查了以前的问题,文件大小良好,并且整个文件的熵数据很高,那么即使编码和压缩图像数据中的轻微损坏也会扰乱解码器(内置于图像查看器中)。

由于情况 3 是唯一可能修复的情况,让我们深入研究一下。有一些特定的字节组合对 JPEG 解码器有意义:FF xx 被 JPEG 解码器解释为所谓的 JPEG 标记(.)。这些标记用于将 JPEG 划分为具有不同用途的“部分”。如果解码器在实际图像数据中遇到无效的 FF xx 字节对(不是 FF Dn(其中 n = 0 到 7)也不是 FF 00),大多数解码器将停止解码。这可能是由于单个“位翻转”导致 FE 变为 FF。由于部分图像数据未解码,这将表现为灰色块。删除有问题的字节对只是解决方案的一部分,因为我们不知道原始值,但我能够仅使用十六进制编辑器和图像查看器来修复图像。使用JpegSnoop很容易确定此类有问题的字节组合的字节地址。但是,由于 JPEG 的编码/解码方式,此问题会影响后续的所有图像数据(简单地说,亮度和色度数据存储为增量,例如相对于前一个块的差异)。要修复损坏,您可能需要使用特殊编辑器(在这个 YouTube 视频我使用自己的和免费的编辑器来查看是否可以以及如何修复部分灰色的 JPEG。)只有极少数情况下,您可能会足够幸运,只需用零覆盖有问题的字节即可获得令人满意的结果:

使用十六进制编辑器修复 JPEG

对于情况 2,没有解决方案。情况/问题 1 可能是由不正确的恢复引起的:

  1. 文件系统感知恢复工具:简而言之,此类工具依靠查找文件系统数据片段来定位丢失的数据。如果我们假设某些基于 FAT 的文件系统(因为这些文件系统在数码相机使用的存储卡上占主导地位),该工具会找到一个目录条目,从中可以解码文件名、文件大小、文件属性和第一个簇。然后,它会检查文件分配表以获取其余簇,最后重新组装文件。如果 FAT 链因某种原因损坏/不完整,则只能重新组装文件的一部分。这种损坏在基于 FAT 的文件系统(FAT、FAT32 和某种程度上的 exFAT)中并不少见。使用所谓的雕刻机通常仍然可以进行恢复,但这会带来一系列独特的问题。

  2. 另一类文件恢复工具被称为“carvers”。它们不依赖文件系统,而是扫描驱动器以查找可能表明存在某种文件类型的“魔法字节”。如果我们假设是 JPEG,我们可以扫描驱动器以查找簇或扇区边界处的 FF D8 FF,因为 JPEG 总是以该特定字节组合开头。现在我们知道文件的起始位置了。

这种方法的问题:许多工具都相当简单,如果遇到 FF D9(即 JPEG“图像结束标记”)或遇到可能表示下一个文件开始的魔法字节,它们就会认为它们已经到达 JPEG 的末尾。许多所谓的扫描仪会扫描多种文件类型,并且可能偶然遇到与其他文件类型匹配的字节组合。例如,49 44 33 是​​完全有效的 JPEG 数据,但也恰好是 MP3 文件的魔法字节。现在,简单的方法是得出结论,我们已到达文件末尾并开始恢复 MP3 文件。第二个问题是文件碎片,在到达文件末尾之前,会找到下一个 JPEG 的有效字节组合。许多雕刻师会关闭他们正在恢复的 JPEG 并开始下一个。虽然存在允许您手动尝试重新组装此类文件甚至尝试自己解决问题的工具,但对此没有简单的解决方案。

手动重组碎片 JPEG

相关内容