无效的PNG图像文件:iDOT未指向有效的IDAT块

时间:2012-08-17 14:29:30

标签: html objective-c ipad png javax.imageio

我在应用程序中有一些HTML内容页面,我正在使用UIWebView来显示它们。其中一些页面中有一个PNG图像,它在xcode的调试控制台中生成以下消息:

ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk

图像仍然显示并且看起来正确。这也只有在我在iPad(第3代)上运行应用程序时才会发生。我的iPhone 4不会显示此消息。

我的第一个想法是它是由文件名中的〜字符引起的(我已经将~ipad标签添加到文件名中)。但是,删除〜字符没有任何效果。

我已经完成了谷歌搜索,但我只得到3个结果。其中2个是中文,谷歌的翻译似乎没有很好的翻译。其他结果似乎是与我有同样问题的人,但没有回复他的post

6 个答案:

答案 0 :(得分:11)

有同样的问题。解: 使用“color sync utility”这是一个标准程序,你可以从启动板加载。打开png文件并使用该实用程序保存。

答案 1 :(得分:4)

'清理'项目(xcode菜单路径:product - > clean)为我解决了这个问题。

使用新名称重新保存.png不会。

图像确实出现在模拟器中,但没有出现在测试设备上(ipod touch 5th gen。)

非常大的图像4000 x 4000

答案 2 :(得分:2)

奇怪的是,大约一个小时前我就遇到了完全相同的问题。我没有找到导致其失败的特殊原因,但我认为我能够“修复”图像以使其正确显示而不会抛出错误。

我刚刚在预览中打开它并从源中导出了一个新的PNG文件。一旦我用我新创建的项目替换了我的项目文件中的坏图像,我就清理,编译并按预期工作。

希望它和你一样容易......

答案 3 :(得分:1)

您可能想要检查另一个目录中是否有另一个具有相同名称的文件。这就是导致我这个错误的原因..(重复Default.png)

答案 4 :(得分:1)

我的应用程序遇到了同样的问题。事实证明,用户上传到我的服务器并使用php + imagemagik进行了编辑,其中条纹输出。我使用以下命令编辑上传的图像:

convert $uploadfile -resize 300x300 -quality 30 -strip $uploadfile

当我删除-strip参数时,错误消失了!

答案 5 :(得分:-1)

这里也有同样的问题 1 - 关闭XCode;
2 - 在Photoshop中打开图像;
3 - 以80%的质量重新保存(替换相同的图像);
4 - 打开XCode,清除它CMD + SHIFT + K;
5 - 再次在您的设备中构建它;

很简单,为我工作。
对你而言?