SDWebImage
加载Gif图片过大,导致内存飙升最终程序崩溃,报错:
Message from debugger: Terminated due to memory issue
我发现这里
UIImage*image = [UIImagesd_imageWithData:data];
图片取出来的时候就已经巨大无比,占用了很大的内存,导致内存来不及释放就崩溃。
发现这里面对图片的处理是直接按照原大小进行的,如果几千是分辨率这里导致占用了大量内存。
所以我们需要在这里对图片做一次等比的压缩。
更改源码:
1、在UIImage+MultiFormat 中增加方法,对图片做一次等比的压缩。
+(UIImage*)compressImageWith:(UIImage*)image{
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width =640;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的conte