3
我正在使用下面的方法來模糊一些圖像。使用儀器CIImage泄漏。我試圖用@autoreleasepool包裝它們,但沒有運氣。有任何想法嗎?CIImage內存泄漏
-(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設置爲零,並沒有工作。然而,看起來設置上下文爲零似乎消除了泄漏。 – skwashua