createCGImage:fromRect:在iPhone 4(iOS 7)上占用太多内存?

时间:2014-01-12 05:18:31

标签: ios iphone objective-c uiimage

在我的应用中,我需要将CIImage对象转换为UIImage,因此我使用以下代码:

CIImage *holder = XXX
CGImageRef cgImage = NULL;
@autoreleasepool
{
    CIContext *context = [CIContext contextWithOptions:nil];
    CGRect extent = [holder extent];
    cgImage = [context createCGImage: holder fromRect:extent];
    holder = nil;
}
UIImage *image = [UIImage imageWithCGImage:cgImage scale:1.0 orientation:imgOrientation];
CFRelease(cgImage);

此代码适用于iPhone 4S以及后来的设备,如iPhone 5和iPhone 5S,但当我在运行iOS 7的iPhone 4设备上测试时,行cgImage = [context createCGImage: holder fromRect:extent];直接拍摄270 + MB内存使用量并导致应用程序因内存压力而停止。我也尝试了[UIImage imageWithCIImage:]方法,但我得到的是一张空白图片。

那么这里有什么问题,是设备/ os组合还是这里的一些有线用法?

仅供参考:我使用的图像是1936x2592,这是iPhone 4相机应用程序的标准输出。

0 个答案:

没有答案