背景
为了进一步压缩安装包体积,我们从资源图片入手,尝试使用JPG和webp格式的图片替换原有的PNG图片,使得包体积又有了一定的下降。
webp的优缺点
webp与JPG相比更具优势,主要是以下两点
- webp的体积在同等清晰度情况下一般小于JPG(大多数情况,一些特殊纹路的图片除外)
- webp可以支持透明度
但是,webp格式与其它两种格式相比有一个缺点
- 无法直接使用系统方法调用,需要一个解压处理的过程
一些实践方案
从编码角度来看,可以通过自定义一个UIImage的类别,来提供一个便捷方法,并不会对编码效率造成太大影响。
@interface UIImage (WebPLoad)
//从NSBundle取得资源文件,转为NSData,再处理成图片
+(UIImage*)loadWebpImage:(NSString *)name;
@end
但是xib里的图片,就无法直接使用属性赋值的方式了,必须通过IBOutlet引出UIImageView控件,然后使用代码给控件传入webp图片。
从运行效率来看,这种方式肯定是有一定的性能损耗的,但相较于体积缩减来说这种损耗可以接受。同时对于本身体积较小的图标,仍然使用png格式。