核心图像过滤器崩溃问题

时间:2015-03-25 05:38:54

标签: ios objective-c iphone ios7 ios8

我正在尝试加载过滤器,用于从Web搜索下载的尺寸接近5000 * 3000的较大图像尺寸。当应用这些过滤器用于较大的图像大小时,应用程序崩溃并因此终止。下面是我目前用于过滤器预览的代码:

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *outputImage = [filter.filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *displayImage = [UIImage imageWithCGImage:cgimg];

以下代码行导致问题,是否有人遇到此问题?

  

CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];

1 个答案:

答案 0 :(得分:0)

在这一行

  

CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];

您可以创建新的图像参考,然后从此参考

创建新图像
  

尝试在最后一行下方添加此行

     

CGImageRelease(cgimg)

由于ARC没有自动释放此引用,因此您必须手动释放此引用,然后它将在您身边工作

代码:

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *outputImage = [filter.filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *displayImage = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);  // this line release the image reference