2014-04-08 27 views
3

我想在我的图像视图上应用模糊。我有一个模糊的代码:在iOS上非常缓慢的UIImage模糊

- (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]; 
} 

但模糊了我的UIView iPad上的截图发生非常缓慢。

有没有更快的方法来做到这一点?

+1

[iOS上的快速模糊]可能的重复(http://stackoverflow.com/questions/12271016/fast-blur-on-ios) – pNre

+1

您可以尝试https://github.com/lukabernardi/LBBlurredImage – BoranA

回答

6

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

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

+0

他们真的在WWDC发布它?我记得在演讲结束后的一段时间里,它并不是真的存在(我认为模糊只在UIToolbar上或什么都不是)。但是,嘿,太棒了! – Michal

+0

Yeap,他们发布了示例代码! :) – RaffAl

1

尝试this库。这是相当新的和相当快。请记住,模糊对于设备处理来说是非常不好的事情,所以它不会像禅宗一样,但它非常好。

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