在我的应用中,我需要将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相机应用程序的标准输出。