我无法读取从 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/