在iPad上渲染大图像:崩溃

时间:2014-11-07 07:13:22

标签: image-processing crash ios8 image-rendering

我使用下面的函数将视图渲染为图像。 问题是,对于大小超过2000像素的图像,内存压力太高而应用程序崩溃。 在模拟器上它可以正常工作,但在iPad(2或更高)上,内存增长超过80MB。

有没有" smart"渲染大型视图的方法?

-(UIImage*)renderToImageUsingContextFixedScale{
UIImage*im2;
CGFloat scale = 1.0;

if(UIGraphicsBeginImageContextWithOptions != NULL)
{
    if(scale > 1.0) {
        UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, scale);
    } else {
        UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, scale);

    }
} else {
    UIGraphicsBeginImageContext(self.frame.size);
}


//::::::::::::::::
CGContextScaleCTM(UIGraphicsGetCurrentContext(), scale, scale);
//::::::::::::::::
@autoreleasepool {
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    im2 = UIGraphicsGetImageFromCurrentImageContext();
///THE ERROR OCCURS HERE:
    UIGraphicsEndImageContext();
   }
//:::::::::::::::::::::::::::


return im2;
}

0 个答案:

没有答案