图片缓存优化
1.利用图片压缩工具进行无损压缩(imageOptim,PNGOUT, Zopfli, Pngcrush,AdvPNG, extended OptiPNG, JpegOptim, jpegrescan, jpegtran, and Gifsicle.)
压缩原理,去除图片中一些无用的信息(metadata,注释等),一般能够压缩20%~40%等。
2.在程序中,看具体情况需要初始化uiimage。
uiimage 一般用imageNamed初始化,但是第一次用这个方法会将图片放置内存当中,然后后面会根据名字从内存中获取。这样一般就是牺牲内存来使效率更大化。如果使用频率多,而且图片占用内存不是很大,可以使用这个。
但是很多都是一次性的,建议使用读取文件的方式获取图片[UIImage imageWithContentsOfFile],这样就不会占用内存,但是读取文件意味着io操作,就是会占用一定的cpu,但是对当下的手机来说不算事。
综上所述,请根据具体情况初始化uiimage。
3.利用代码缩放图片。
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(size);
// 绘制改变大小的图片
[img drawInRect:CGRectMake(0, 0, size.width, size.height)];
// 从当前context中创建一个改变大小后的图片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
// 返回新的改变大小后的图片
return scaledImage;
}