FileFix Ultimate
简体中文

如何修复损坏的PNG文件

PNG文件由多个块组成,每个块都有校验和保护。因此损坏位置很容易定位:查看器拒绝打开文件,通常是因为某个块损坏或缺少结束标记,而图像的大部分内容仍然存在。

最后更新:

现在该怎么做

  1. 复制文件,只在副本上操作。
  2. 检查文件,找出哪个块损坏,或文件是否被截断。
  3. 创建修复副本;无法解码的行会被舍弃或填充。

分步操作

  1. 复制文件

    保持原始文件不变。如果这个PNG来自恢复结果,也请检查是否还有其他恢复出的副本是完好的。

  2. 检查文件

    在损坏文件修复中选择该PNG。FileFix Ultimate会检查签名、头块、每个块的CRC、压缩图像数据以及结束标记。

  3. 查看检测结果

    辅助块中的错误CRC(例如文本或颜色配置文件)通常无害,也容易修复。图像数据块中的损坏会影响图片本身。

  4. 创建修复副本

    修复会纠正结构问题;如果图像数据损坏,则会用仍可解码的行重建图像。

  5. 检查结果

    打开修复后的副本。如果下半部分缺失,说明那部分数据已经丢失,无法还原。

PNG损坏的原理

PNG以8字节签名开头,后面跟随多个块:IHDR描述尺寸和颜色类型,IDAT块保存压缩后的像素,IEND标记结尾。每个块末尾都有CRC校验和,因此任何被改动的字节都会被检测到。

由于像素数据会作为一个连续流跨所有IDAT块进行压缩,中间位置的损坏通常会使其后的所有内容都无法解析。损坏前的行可以正确解码,所以经常能保存一张部分图像。有些工具会忽略这些校验和,仍然显示一张局部损坏的图片,这也是不同查看器可能对同一文件给出不同结果的原因。

常见原因

下载和复制中断会截断文件。文本模式传输是某些FTP客户端过去常见的问题,它会改动行尾字节并破坏校验和。故障硬盘和虚标容量的USB闪存盘会在原位置损坏数据。

删除后恢复出的截图和图形文件,如果其部分空间已被重新使用,也可能损坏。恢复后进行验证可以显示哪些文件能够完整解码。

不适用的情况

  • 缺失或损坏的像素数据无法恢复;只能保留可解码的部分。
  • 动画PNG中首帧之后的帧可能无法保留。
  • 只有.png扩展名、实际内容是其他格式的文件,并不是可修复的PNG。

FileFix Ultimate如何提供帮助

  • 检查每个块及其CRC,并报告损坏的确切位置。
  • 当数据流损坏时,从可解码的行重建部分图像。
  • 写出新的PNG,并保持原始文件不变。
  • 对恢复出的PNG文件进行解码,以便在删除恢复后验证它们。

FileFix Ultimate 免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。运行前请检查签名。

常见问题

带CRC错误的PNG还能打开吗?

有些查看器会忽略CRC错误并照常显示图像。带有正确校验和的修复副本可以在这些查看器中打开。

为什么我的PNG只显示顶部?

压缩数据在某个位置断裂,其后的所有内容都无法解码。那部分数据已经损坏或缺失。

PNG修复是无损的吗?

对于能够解码的行,是无损的。PNG本身是无损格式,因此修复后的像素与原始像素相同。

我可以把损坏的PNG转换成JPEG来修复吗?

转换前必须先解码图像,而解码会在同一位置失败。请先修复PNG结构,如需JPEG,再转换修复后的副本。

分享此页面