【发布时间】:2015-11-07 20:53:49
【问题描述】:
我收到 Received memory 警告 3 次,然后应用程序崩溃。
我有一个滑块需要将模糊值更改为 UIImageView 图像。 我尝试使用 dispatch_async 并使用 imageView.image =nil; 清理图像内存;但问题没有解决。
从 uislider 调用此代码:
dispatch_async(dispatch_get_main_queue(), ^(void)
{
imageView.image =nil;
imageView.image = [self blurImage:originalImage withValue:value];
});
-(UIImage *)blurImage:(UIImage *)theImage withValue:(nullable id)value
{
CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[gaussianBlurFilter setDefaults];
CIImage *inputImage = [CIImage imageWithCGImage:[theImage CGImage]];
[gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey];
[gaussianBlurFilter setValue:value forKey:kCIInputRadiusKey];
CIImage *outputImage = [gaussianBlurFilter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[inputImage extent]];
UIImage *image = [UIImage imageWithCGImage:cgimg];
return image;
}
【问题讨论】:
标签: objective-c