应用CiFilter GaussianBlur

时间:2015-08-26 01:07:07

标签: swift blur gaussian cifilter ciimage

正如标题所说,我需要将GaussianBlur实现为UIImage;我试图搜索一个教程,但我仍然无法实现它。我试过这个

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在第5行显示错误(“NSInvalidArgumentException”)。任何人都可以帮我实现gaussianBlur和CIFilter吗?

编辑:谢谢你们两位,但我还有另一个问题;我需要将模糊仅应用于图像的一小部分,如此

enter image description here

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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

所以,评论出你上面看到的那个部分,就可以解决问题了,我得到了一个模糊的图像。我正在使用文件路径,但这不应该与你拥有的有所不同。

答案 2 :(得分:0)

您可能想要创建一个具有所需形状的CIImage灰度蒙版图像,一个模糊的CIImage(使用CIGaussianBlur),然后使用CIBlendWithMask将它们混合在一起。

CIBlendWithMask的输入是输入图像(模糊图像),输入背景图像(不模糊图像)和蒙版图像(您想要的形状)。输出是您想要的图像。