博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XCode编译报pngcrush caught libpng error错误但不影响运行
阅读量:6869 次
发布时间:2019-06-26

本文共 1063 字,大约阅读时间需要 3 分钟。

hot3.png

一直以来,我的Xcode项目编译偶尔会出现类似于While reading xx/BackgroundHomeScreen_5.png pngcrush caught libpng error的错误提示(不是警告),但是这个错误并不会影响应用运行,所以也就没管,今天正好有空解决这个问题。

根据网上搜到的资料,说出问题的png文件不是真正的png文件,可能是个jpg文件,实际的文件头信息是不一样的,造成不能识别。

然后我搜了一下Mac里检测图片真正格式的途径,找到了用文件头来检测图片格式的方法:

  1. JPEG/JPG - 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识) - 文件结束标识 (2 bytes): $ff, $d9 (EOI)
  2. TGA - 未压缩的前5字节 00 00 02 00 00 - RLE压缩的前5字节 00 00 10 00 00
  3. PNG - 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
  4. GIF - 文件头标识 (6 bytes) 47 49 46 38 39(37) 61 G I F 8 9 (7) a
  5. BMP - 文件头标识 (2 bytes) 42 4D B M
  6. PCX - 文件头标识 (1 bytes) 0A
  7. TIFF - 文件头标识 (2 bytes) 4D 4D 或 49 49
  8. ICO - 文件头标识 (8 bytes) 00 00 01 00 01 00 20 20
  9. CUR - 文件头标识 (8 bytes) 00 00 02 00 01 00 20 20
  10. IFF - 文件头标识 (4 bytes) 46 4F 52 4D F O R M
  11. ANI - 文件头标识 (4 bytes) 52 49 46 46 R I F F

可以通过UltraEdit来打开图片,16进制查看。然而我发现出现错误提示的png文件并不是jpg文件,文件头是标准的png格式。这能说明png内容有问题吗?也并不是,在Mac下能正常预览这个png图片。

也有网友说可以用PS打开图片然后重新导出为PNG图片。是可以做,不过我考虑到这个png图片刚才格式有点大,就采用了另一种方法:打开tinypng.com,上传图片后再下载被压缩后的图片,一举两得。

替换了图片后,没有发现再报错。也许只是暂时不报错了,以后继续观察。

参考:

转载于:https://my.oschina.net/ioslighter/blog/598209

你可能感兴趣的文章
没什么不可能:剿灭Windows下的29个烦恼
查看>>
String,StringBuffer,StringBuilder的整理
查看>>
我的友情链接
查看>>
nginx + tomcat 配置,静态资源直接使用nginx
查看>>
mysql 字符截取 实列
查看>>
linux中crontable的用法 附件二
查看>>
部署mysql高可用、读写分离集群
查看>>
jquery中下拉多选插件jquery.multiSelect的使用
查看>>
梦想与现实,你会选择什么——一个电子爱好者的迷茫
查看>>
用rabbitMQ实现生产者消费者
查看>>
GRADLE遇见“设备未就绪”
查看>>
正则表达式实现——匹配括号中的A 以及 匹配非括号中的A
查看>>
golang锁sync.Mutex
查看>>
定义自己的JSTL标签库
查看>>
JAVA 相关
查看>>
drbd的问题思路记录
查看>>
学习使用 iptables
查看>>
PowerDesigner导出数据结构到word
查看>>
多线程 NSOperation
查看>>
eclipse+maven+tomcat开发整理
查看>>