如何让UIImageView
渐变模糊background
?换句话说,图像在左侧完全blurred
,右侧的图像模糊不清?
答案 0 :(得分: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一秒钟,则需要在另一个线程中调用该方法。
希望它有所帮助!