【发布时间】:2012-02-04 14:20:09
【问题描述】:
我有一个UIImage 的类别(在网上找到的非常流行的代码)来进行各种图像处理。
- (UIImage *)imageScaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContext(newSize);
[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
我大量使用的一个方面是缩小图像。我的应用程序可以拍摄相当大的图像并将它们缩小到“工作”大小。但是,仍然有应用程序由于内存而崩溃的时候。这是因为该类别从原始图像中创建了一个新 缩放图像。因此,在创建新的更小(但仍然很大)的图像时,原始的 HUGE 图像仍然存在。
所以,我的问题是,有没有办法加载这个大的原始图像并重新缩放它?也就是在不创建新图像的情况下重新缩放原始图像,并且不分配更多内存?
【问题讨论】:
标签: ios cocoa-touch image-processing uiimage