是否可以使用十六进制编辑器修复 .png 文件?

Is it possible to fix a .png file with a hex editor?

我有一堆 .png 文件来自 android game.I 的资产文件夹,所有资产都来自 .obb 文件。可以打开所有其他文件。但是这些 .png 文件中的任何一个似乎都没有打开。我尝试了很多有关的程序; Illustrator、Photoshop、GIMP、Paint 和一些在线文件查看器。但是 none 可以做到。


然后我检查了文件的十六进制代码,发现这些文件不以通常的png header开头,这是

89 50 4E 47 0D 0A 1A 0A
但是所有结尾为
49 45 4E 44 AE 42 60 82
属于png格式

Checked .PNG Signature Here

所以我尝试将png header 添加到文件中,然后保存它们。我不知道它是否会起作用,只是尝试过。我仍然无法打开这些文件。


那么有没有办法将这些文件作为图像打开,或者它们可以只是某种格式为 .png 的数据而不打算用作图像?

如果是加十六进制header,我应该怎么做?



First Page of Hex Code

谢谢。

十六进制代码显示大约 500 字节的垃圾,后跟一个有效的 PNG tRNS 块。所以显然有什么东西覆盖了 PNG 文件的开头。创建适当的 IHDR、PLTE 以及可能缺少的其他块是可能的,但需要大量工作。执行此操作所需的信息不包含在您的文件中,因此您需要在其他地方或通过试验找到它。

它有一个 64 字节的 tRNS 块这一事实告诉您 PNG 颜色类型必须是 3(索引)并且位深度必须是 8,并且表明只有 64 种不同的颜色存在。调色板的内容是任何人都可以猜测的,因此您可以放入一个简单的 64 项灰度调色板;这将使图像可见但颜色不正确。