java - 无法从 IPA 读取 PNG

标签 java png javax.imageio

icon.png

我无法读取从 IPA 中提取的 PNG 文件。

BufferedImage bufferedImage = ImageIO.read(new File("z:\\icon.PNG"));

throws: " I/O error reading PNG header".

我可以读取任何其他 PNG,只要它不是来自 IPA。有什么想法吗?

最佳答案

简短回答:这不是 PNG。这是CgBI文件,这是 Apple 专有的 PNG 扩展名。大多数软件无法读取它们,只是因为它们在 IHDR 之前插入自定义 CgBI 关键 block ,从而违反了 PNG 规范。

有软件(如上面的链接所示)可以读取它们并将其转换为标准 PNG。还有一个Java based solution可用(我自己没有测试过),您可能想检查一下。

关于java - 无法从 IPA 读取 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50819211/

相关文章:

java - 如何使用java在HTML文档中定位特定的td

java - 使用反射调用类中的所有 setter

java - 使用 Proguard 时 Dropbox sync api 不工作

flash - 自定义 DEFLATE 实现以加速 PNG 编码

java - 如何在 Java 中检测损坏的图像(PNG、JPG)

java - JPEGImageWriteParam 抛出 ClassCastException

java - 写入文本文件时,未写入大约 4,000 个值

css - ionic : Using a custom PNG icon in Ion-refresher

google-chrome - Chrome 下载 PNG 图像链接。我希望它们在新选项卡中打开以供查看。我如何让 Chrome 做到这一点?

java - 使用 PDFbox 将 pdf 转换为 tiff 时,Tiff 图像文件为空白