2014-04-08 25 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有一些高質量答案的問題。