我将如何使UIImageView
渐变模糊background
?换句话说,图像完全blurred
在左侧,而在右侧变得不那么模糊?
问问题
1251 次
1 回答
4
我们在项目中做了同样的事情!我们使用了这种方法:
(UIImage *)blurImage:(CGImageRef*)image withBlurLevel:(CGFloat)blur
{
CIImage *inputImage = [CIImage imageWithCGImage:image];
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"
keysAndValues:kCIInputImageKey, inputImage, @"inputRadius", @(blur), nil];
CIImage *outputImage = filter.outputImage;
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef outImage = [context createCGImage:outputImage
fromRect:[inputImage extent]];
UIImage *returnImage = [UIImage imageWithCGImage:outImage];
CGImageRelease(outImage);
return returnImage;
}
此代码使用您的 GPU 进行模糊处理,但如果您不希望 UI 被阻塞一秒钟,则需要在另一个线程中调用该方法。
希望能帮助到你!
于 2013-07-04T13:59:51.267 回答