目前项目app体积增大到了60m,在不动代码的情况下,能快速有效减小app体积的就是对项目中的图片资源进行处理了。
对图片进行处理可以从这几个方面入手
1. 无用图片,这个不用多说,项目中没有用到的图片一律移除
2. iOS 图片分为1x, 2x, 3x 图, 现在几乎所有的iphone设备都是retain屏幕,如果1x, 2x, 3x图片在项目中都有,其实是用不到1x图片的。1x图片全部可以移除。
3. 得意于Tinypng 这个神奇的网站, 在质量几乎不变的情况下压缩图片,大概可以缩小50%甚至更多。我们可以对app里的所有图片进行压缩处理,处理前后视觉效果并没有差别。
开始处理
1. 上面的第一条,目前已经有现成的解决方案了
2. 第二条,你当然可以自己手动一张张删除1x图片,但是图片数量一多,手动操作就不是一个明智的选择了。 所以我写了脚本用来批量删除1x图片,这个脚本会只有在1x,2x,3x都存在的情况下删除1x图片,避免了误删。
3. 压缩图片同样使用脚本处理,为了效率,压缩脚本需要安装一下第三方模块aiohttp,一条命令就能安装成功,脚本支持直接替换,自定义输出路径等操作。 你可以把它单纯的当作一个图片压缩脚本,在需要压缩图片的时候使用它。
更具体的使用方式请参考:项目地址
- remove1xImage.py用来批量删除工程中的1x图片。
- tinyImages.py用来批量压缩图片,可以接替换项目中的图片文件。同时也可以自定义输出路径(保留原始图片)
为什么要使用脚本
在tiny官网上操作要自己把所有图片上传上去,然后下载下来最后还要手动替换到项目中,图片数量一多操作就极其繁琐。并且tinyPng官网提供了接口来压缩图片。所以自己写了一个脚本批量处理,自己项目中400张图片的压缩只需要1分多钟就能完成,使用前获取APIKey。
不过有一个缺点,每个APIKey限制是每个月500张图片。一般来说是够用了,如果超过500张图片的话多获取几个APIKey就可以了。
好吧这部分直接看readme, 给出github链接图片处理脚本 如果好用的话给个star。
给一个使用的截图