使用渐变alpha模糊UIImageView

时间:2013-07-04 13:43:29

标签: ios objective-c uiimageview

如何让UIImageView渐变模糊background?换句话说,图像在左侧完全blurred,右侧的图像模糊不清?

1 个答案:

答案 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一秒钟,则需要在另一个线程中调用该方法。

希望它有所帮助!