尝试使用核心图像模糊UIImage时内存泄漏

时间:2014-08-31 00:09:03

标签: ios objective-c xcode ciimage

因此,在尝试使用核心图像模糊图像时,我一直在试图修补内存泄漏。我已经将内存泄漏追溯到这段代码:

- (void) blurImage {
    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSLog(@"Captured Image");

    @autoreleasepool {
        CIImage *inputImage = [[CIImage alloc] initWithCGImage:image.CGImage];
        CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
        [filter setValue:inputImage forKey:@"inputImage"];
        [filter setValue:[NSNumber numberWithFloat:10.0] forKey:@"inputRadius"];

        CIImage *result = [filter valueForKey:kCIOutputImageKey];
        blur_image.image= [[UIImage alloc] initWithCIImage:result];
    }
    NSLog(@"blurred Image");
}

此代码执行两项操作,首先捕获屏幕截图,然后模糊该图像并将其设置为我的超级视图背景中的图像视图。

我使用选择器在后台运行

来调用此代码块
- (void) viewDidAppear:(BOOL)animated{
    SEL blur = @selector(blurImage);
    [self performSelectorInBackground:blur withObject:nil];
}

我收到与此代码相关的3个内存泄漏

这是我提到的泄漏: CoreImage CI :: GLESContext :: program_for_name(__ CFString const *)

我很困惑,我有什么不对,有人可以启发我吗?

1 个答案:

答案 0 :(得分:0)

这里有几点