画像を縮小するには、次の方法があります。しかし、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;
}
EDIT:いくつかの詳細情報:この行にある場合
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
私がやります
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
画像は拡大縮小されませんが、サイズ 20 MB はなくなります。