我有 100 多个损坏的 JPEG 文件。它们都是用同一台相机拍摄的。每个文件大约 3MB,因此必须有大量数据可供处理。
它们是我叔叔的相机里的,如果我能修好它们,对他来说意义重大。
以下是我已采取的步骤。
1. JPegSnoop
这是建议这里。当我使用该软件时,出现以下错误信息:
Start Offset: 0x00000000
*** Skipped 4878206 marker pad bytes ***
OFFSET: 0x004A6F7E
WARNING: Unknown marker [0xFF00], stopping decode
Use [Img Search Fwd/Rev] to locate other valid embedded JPEGs
我不太清楚该如何处理这个错误信息。
2. Stellar Phoenix JPEG 修复
这款产品在网上广受好评。但是,对我来说,它不起作用。
3.Online.officerecover.com
这是一项再次获得好评的在线服务。遗憾的是文件太大,无法上传。
4. Jpeg 修复店
这是另一款备受好评但对我来说却不起作用的软件。
答案1
我有 100 多个损坏的 JPEG 文件。它们都是用同一台相机拍摄的。每个文件大约 3MB,因此必须有大量数据可供处理。
这是一个经常犯的错误假设。据我们所知,文件可能用零填充。因此,对于将来阅读本文的任何人:
使用十六进制编辑器抽查一些文件,HxD 是免费的。验证文件是否填充了某些重复字节模式的零(FF FF FF 等)。我经常收到 JPEG 文件进行修复,我估计至少有 50% 的文件填充了零。
如果您看到的确实是这个,则无法修复该文件。如果不是,则该文件可能可以修复。
是否以及如何取决于我将解释使用我使用和编写的软件,JPEG-Repair修复 JPEG。如果我知道可以尝试用于特定修复的免费工具,我也会提到它!我将避免链接到我自己的软件。
基本上,JPEG 是一组部分,其中一些部分我们可以视为元数据,而最大的部分则是实际的图像数据。每个部分都以 '标记' 说明该节的用途及其大小。例外情况是包含图像数据的节,其大小未定义,应对其进行解码,直到我们到达图像标记的末尾。
“标题”损坏或损坏
虽然可能没有正式名称可以称为标头,但我将除包含实际图像数据的部分之外的所有部分都称为标头。标头损坏的最可能症状是根本无法打开 JPEG。
现在假设我们无法打开 JPEG,例如软件告诉您“看起来我们不支持此文件格式”。我们检查后发现该文件确实包含数据,那么下一步该怎么做呢?
快速估计文件是否可以修复的一种方法是查看“熵”。JPEG 是高熵数据,我们可以要求 JPEG-Repair 打开文件并计算熵。
如果熵看起来像 JPEG,JPEG-Repair 将以绿色显示位/字节值,如果太高或太低,则该值将显示为红色。字节直方图分布相当均匀,所有值都已表示出来。例如,以下直方图显示仅使用了一半可能的字节值,并且根据定义它不是 JPEG 文件:
我们还可以使用例如提取模式批量打开文件并评估多个文件。在这种情况下,熵太低,文件不包含 JPEG 数据:
如果熵看起来不错,我们可以尝试通过借用用同一设备拍摄的已知完整文件的头部来修复头部。
损坏范围扩大至图像数据
这可能是勒索软件造成的,但也可能由于其他原因而发生。一个例子是错误恢复的照片,如下面的视频所示。修复需要已知良好的参考文件。简而言之,我们将标题粘贴到损坏的文件上,然后清除损坏的数据。由于 JPEG 的编码方式,我们需要重新对齐图像并纠正颜色。
此视频展示了修复示例:https://youtu.be/sSDvNa7HOOA
图像数据损坏
请注意,您可以使用免费JPEG 修复店。
没有真正的方法可以修复 JPEG 流中的损坏数据,但我们可以删除损坏的数据并将其替换为虚拟数据(例如零)。其余损坏通常可以使用提供内容感知填充的照片编辑器轻松修复。
以下是修复示例:https://youtu.be/A33zn_sgm30