3
아래의 방법을 사용하여 일부 이미지를 흐리게 만듭니다. 악기를 사용하면 CIImage가 누출됩니다. 나는 그것들을 @autoreleasepool에서 감싸려고했지만 운이 없다. 어떤 아이디어?CIImage memory leak
-(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;
}
}
이전에 CIImages를 nil로 설정하려고 시도했지만 작동하지 않았습니다. 그러나 컨텍스트를 nil로 설정하면 누출을 제거하는 것처럼 보입니다. – skwashua