2015-08-26 74 views
1

正如標題所示,我需要將GaussianBlur實現爲UIImage;我試圖尋找一個教程,但我不能夠實現它。我想這應用CiFilter GaussianBlur

var imageToBlur = CIImage(image: coro.logo) 
var blurfilter = CIFilter(name: "CIGaussianBlur") 
blurfilter.setValue(imageToBlur, forKey: "inputImage") 
blurfilter.setValue(2, forKey: "inputImage") 
var resultImage = blurfilter.valueForKey("outputImage") as! CIImage 
var blurredImage = UIImage(CIImage: resultImage) 
self.immagineCoro.image = blurredImage 

進口CoreImage框架,但Xcode中顯示我的錯誤(「NSInvalidArgumentException」)在第5行。誰能幫我實現高斯模糊和CIFilter帶來什麼影響?

編輯:謝謝你們兩位,但我還有其他問題;我需要應用模糊僅對圖像的一小部分這樣的

enter image description here

回答

2

您已經使用inputImage兩次。第二次可能是inputRadius

+0

是的,那是!所以我意識到我必須研究Apple的論證。最後一個問題:是否有可能打開我應用CIFilter的視圖,iOS模擬器使用大量資源(大約60 mb ram,而不是之前使用的30)? –

3

我只是想你的代碼,這裏是我建議的修改,這個工程:

let fileURL = NSBundle.mainBundle().URLForResource("th", withExtension: "png") 
    let beginImage = CIImage(contentsOfURL: fileURL) 
    var blurfilter = CIFilter(name: "CIGaussianBlur") 
    blurfilter.setValue(beginImage, forKey: "inputImage") 
    //blurfilter.setValue(2, forKey: "inputImage") 
    var resultImage = blurfilter.valueForKey("outputImage") as! CIImage 
    var blurredImage = UIImage(CIImage: resultImage) 
    self.profileImageView.image = blurredImage 

所以,註釋掉你在上面看到的部分,做過的伎倆,我得到一個模糊的圖像如預期。我正在使用文件路徑,但這不應該與您擁有的有所不同。

0

您可能想要創建一個具有所需形狀的CIImage灰度蒙版圖像,一個模糊的CIImage(使用CIGaussianBlur),然後使用CIBlendWithMask將它們混合在一起。 (模糊圖像),輸入背景圖像(未模糊圖像)和蒙版圖像(所需形狀)。輸入圖像(模糊圖像),輸入背景圖像(未模糊圖像)和蒙版圖像(所需形狀)。輸出是你想要的圖像。