在iOS上非常慢的UIImage模糊

时间:2014-04-08 11:35:26

标签: ios objective-c blur

我想在我的图片视图上应用模糊。我有这个代码模糊:

- (UIImage *)applyBlurOnImage: (UIImage *)imageToBlur withRadius: (CGFloat)blurRadius
{
    CIImage *originalImage = [CIImage imageWithCGImage: imageToBlur.CGImage];
    CIFilter *filter = [CIFilter filterWithName: @"CIGaussianBlur" keysAndValues: kCIInputImageKey, originalImage, @"inputRadius", @(blurRadius), nil];
    CIImage *outputImage = filter.outputImage; CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef outImage = [context createCGImage: outputImage fromRect: [outputImage extent]];
    return [UIImage imageWithCGImage: outImage];
}

但是,对于我在iPad上UIView的屏幕截图,模糊发生的速度非常慢。

有没有更快的方法呢?

2 个答案:

答案 0 :(得分:6)

Apple在WWDC上发布了满足您需求的代码。

它是UIImage上的一个类别,使用Accelerate框架进行快速图像处理。 如果您有开发者帐户,则可以获取UIImage类别here

答案 1 :(得分:1)

试试this库。它相当新,速度很快。请记住,模糊对于设备来说要么是非常讨厌的事情,所以它不会像禅一样,但它非常好。

或者 - 你可以参考this一些有高质量答案的问题。