我正在为我的一个应用程序屏幕创建模糊图像,为此我使用以下代码
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:5] forKey:@"inputRadius"];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
blurrImage = [UIImage imageWithCGImage:cgImage];
self.blurrImageView.image = blurrImage;
CGImageRelease(cgImage);
形成上面的代码,我得到了正确的模糊图像,但问题出 CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
在这一行。
到这行内存使用显示是正常的,但是在这行内存使用增加后异常高,
听到的是执行前显示的内存使用截图。内存使用随着这个方法的执行而不断增加,这是之前
这在执行该行之后 CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
这是常见的行为..?我搜索了答案,但我没有得到,所以任何人都面临同样的问题,请帮助我
一件事我“不使用ARC”