SDImageCache:图片采用了二级缓存策略。图片缓存时,在内存有缓存,在磁盘中也有缓存。其中,内存缓存是通过NSCache实现的。
它可以执行最高6个队列。
缓存步骤:
1、将图片缓存在内存中
2、判断图片的格式是png或是jepg,将图片转化为NSData数据
3、如果是在mac_os系统中,直接将图片转化为NSBitmapImageRep数据
4、获取图片的存储路径,其中图片的文件名是通过传入的key经过md5加密后获得的
5、将图片存储在磁盘中
获取图片的步骤:
1、先在内存缓存中寻找
2、如果内存中找不到图片,则在默认的磁盘根目录中寻找,如果还是找不到,再从自定义的只读目录路径中寻找
3、获取图片数据后,将图片数据从NSData转化为UIImage,转化是要根据图片的类型进行转化
4、默认对图片进行解压缩,生成位图图片
5、将位图图片返回
图片解压缩步骤
1、判断图片是否是动态图片,如果是,则不能解压缩
2、判断图片是否是透明的,如果是,则不能解压缩
3、判断图片的颜色空间模型是不是RGB,如果不是,不能解压缩
4、根据图片的大小创建一个上下文
5、将图片绘制在上下文中
6、从上下文中读取一个不透明的位图图像,该图像就是解压缩后的图像
7、将位图图像返回
对图片进行缩放步骤
1、如果是普通图像,则直接进行缩放
2、如果是动态图像,则要对图像中的每一张图像都进行缩放
磁盘缓存清理步骤
1、获取磁盘中图片的最后修