小编skw*_*hua的帖子

CIImage内存泄漏

我正在使用以下方法模糊一些图像.使用仪器CIImage正在泄漏.我尝试将它们包装在@autoreleasepool中,但没有运气.有任何想法吗?

-(UIImage *)blurImage:(UIImage *)image withStrength:(float)strength
{
    @autoreleasepool {
        CIContext *context = [CIContext contextWithOptions:nil];
        CIImage *inputImage = [[CIImage alloc] initWithCGImage:image.CGImage];
        CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
        [filter setValue:inputImage forKey:@"inputImage"];
        [filter setValue:[NSNumber numberWithFloat:strength] forKey:@"inputRadius"];

        CIImage *result = [filter valueForKey:kCIOutputImageKey];
        float scale =  [[UIScreen mainScreen] scale];
        CIImage *cropped=[result imageByCroppingToRect:CGRectMake(0, 0, image.size.width*scale, image.size.height*scale)];
        CGRect extent = [cropped extent];
        CGImageRef cgImage = [context createCGImage:cropped fromRect:extent];
        UIImage *returnImage = [UIImage imageWithCGImage:cgImage].copy;

        CGImageRelease(cgImage);

        return returnImage;
    }

}
Run Code Online (Sandbox Code Playgroud)

memory-leaks objective-c ios ciimage

3
推荐指数
1
解决办法
5988
查看次数

标签 统计

ciimage ×1

ios ×1

memory-leaks ×1

objective-c ×1