我有以下方法来缩小图像。但是每次我使用我的 ipad 2 单击图片并调用此方法时,仪器中应用程序的实际内存大小会增加 20 MB。最终使应用程序崩溃。此方法始终在主线程上运行。内存如此巨大增加的可能原因是什么?. 我正在使用 ARC。
+ (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize
{
CGFloat ratioForCompressionAspect = 1.0;
if ( image.size.width/newSize.width > image.size.height/newSize.height){
ratioForCompressionAspect = image.size.width/newSize.width;
}
else{
ratioForCompressionAspect = image.size.height/newSize.height;
}
newSize = CGSizeMake(image.size.width/ratioForCompressionAspect, image.size.height/ratioForCompressionAspect);
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
编辑:更多信息:如果在这一行
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
我做
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
图像没有缩放,但 20mb 的大小消失了。