现在该怎么做
- 复制文件,只在副本上操作。
- 检查文件,找出哪个块损坏,或文件是否被截断。
- 创建修复副本;无法解码的行会被舍弃或填充。
分步操作
复制文件
保持原始文件不变。如果这个PNG来自恢复结果,也请检查是否还有其他恢复出的副本是完好的。
检查文件
在损坏文件修复中选择该PNG。FileFix Ultimate会检查签名、头块、每个块的CRC、压缩图像数据以及结束标记。
查看检测结果
辅助块中的错误CRC(例如文本或颜色配置文件)通常无害,也容易修复。图像数据块中的损坏会影响图片本身。
创建修复副本
修复会纠正结构问题;如果图像数据损坏,则会用仍可解码的行重建图像。
检查结果
打开修复后的副本。如果下半部分缺失,说明那部分数据已经丢失,无法还原。
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,再转换修复后的副本。