XCode编译报pngcrush caught libpng error错误但不影响运行

一直以来,我的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值