最近公司 项目,下载后在下载列表要展示。但是原图展示,占用内存太大,卡顿,如果不放到内存,直接读文件的话,读取速度还是很慢,滑动卡顿。
最后决定本地生成缩略图,完成展示。效果不错。
写了两个方法 都是基于CoreGraphics,在画布上完成的。代码简单,有需要的可以参考。
//1.自动缩放到指定大小
+ (UIImage *)thumbnailWithImage:(UIImage *)image size:(CGSize)asize
{
UIImage *newimage;
if (nil == image) {
newimage = nil;
}
else{
UIGraphicsBeginImageContext(asize);
[image drawInRect:CGRectMake(0, 0, asize.width, asize.height)];
newimage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return newimage;
}
//2.保持原来的长宽比,生成一个缩略图
+ (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize
{
UIImage *newimage;
if (nil == image) {