在适当位置调整UIImage的大小

时间:2012-01-06 21:39:30

标签: ios cocoa-touch image-processing uiimage

我有一个类别(在网络上找到非常受欢迎的代码)到UIImage进行各种图像处理。

- (UIImage *)imageScaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContext(newSize);
    [self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

我正在大量使用的一个方面是缩小图像。我的应用程序可以拍摄相当大的图像并将其缩小到“工作”大小。但是,仍有时候应用程序因内存崩溃。这是因为该类别会从原始图像创建缩放图像。因此,在创建新的较小(但仍然很大)的图像时,原始的巨幅图像仍然存在。

所以,我的问题是,有没有办法加载这个大的原始图像并将其重新缩放到位?也就是说,重新缩放原始图像而不创建新图像,而不是分配更多内存?

1 个答案:

答案 0 :(得分:2)

是的,甚至有一个完整的Apple sample project正在为你做这件事。

据我所知,对于缩小尺寸的图像没有限制。当然,图像越大,过程就越耗时。