写在前面
通常一个App会有多个版本,企业版,调试版等,不同版本下也会有debug,release之分,有时候需要知道测试所测的版本是否是最新的,虽然可以在App内部添加版本信息进去,但是试想一下如果直接在ICON上添加这些信息是不是更显而易见。
如何实现
1 | // 1. 判断执行 Build 的机器是否安装了 ImageMagic |
ImageMagick
ImageMagick 可以创建、编辑、合成或转换图片。它可以读和写各种格式的图像(超过 200 种格式)包括 PNG、JPEG、JPEG - 2000、GIF、TIFF、DPX、EXR、WebP、Postscript、PDF、SVG。ImageMagick 可以调整、翻转、镜像、旋转、扭曲、剪切和转换图像、图像色彩调整,适用于各种特殊效果,或绘制文本、线、多边形、椭圆和贝塞尔曲线。
安装(建议翻墙)
1 | brew update |
常用用法:
- 查看图片信息
1 | identify original.png |
- 合并图像
1
2# 给图片添加水印
convert original.png -compose over watermark.png -composite new-image.png - 高斯模糊
1
2convert -blur 80x5 original.jpg blur.png
-blur radiusxsigma,两个分别是高斯模糊需要的两个参数
存在的问题 unhandled critical chunk
error: CgBI: unhandled critical chunk AppIcon20x20@2x.png
分析原因
在 Xcode 7.3以后,在 Xcode build 项目时,默认会把 png 压缩 和 修改.然后得到新的png图片,ImageMagick 在修改是会遇到上述的问题.stackoverflow
如何解决
build settting里面设置Compress PNG FIles debug模式下为NO(注意只有项目路径下存在png图片资源时build setting才会有该选项)
存在的问题 ICON未发生更改
项目路径下的ICON已经更改,但是没有显示
分析原因
使用 Xcode9 构建 iOS11 系统的 App 图标,默认读取资源文件,而非App包的Icon图标,导致不显示
1 | Xcode管理app的icon,通过asset资源目录。 |
解决
通过生成独立的 AppIcon_Debug资源文件:
1 | 1.对AppIcon.appiconset文件的每一图标。 |