应用 CiFilter 高斯模糊
Apply CiFilter GaussianBlur
正如标题所说,我需要为 UIImage 实现 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 在第 5 行向我显示错误 ("NSInvalidArgumentException")。任何人都可以帮助我实现 gaussianBlur 和 CIFilter 吗?
编辑:谢谢你们,但我还有一个问题;我只需要像这样对图像的一小部分应用模糊
您已使用 inputImage
两次。第二次估计是inputRadius
.
我刚刚尝试了您的代码,这是我建议的修改,有效:
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
所以,注释掉您在上面看到的部分,成功了,我得到了预期的模糊图像。我正在使用文件路径,但这与您所拥有的没有什么不同。
您可能想要创建一个具有您想要的形状的 CIImage 灰度蒙版图像,一个模糊的 CIImage(使用 CIGaussianBlur),然后使用 CIBlendWithMask 将它们混合在一起。
CIBlendWithMask 的输入是输入图像(模糊图像)、输入背景图像(未模糊图像)和蒙版图像(你想要的形状)。输出就是你想要的图像。
正如标题所说,我需要为 UIImage 实现 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 在第 5 行向我显示错误 ("NSInvalidArgumentException")。任何人都可以帮助我实现 gaussianBlur 和 CIFilter 吗?
编辑:谢谢你们,但我还有一个问题;我只需要像这样对图像的一小部分应用模糊
您已使用 inputImage
两次。第二次估计是inputRadius
.
我刚刚尝试了您的代码,这是我建议的修改,有效:
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
所以,注释掉您在上面看到的部分,成功了,我得到了预期的模糊图像。我正在使用文件路径,但这与您所拥有的没有什么不同。
您可能想要创建一个具有您想要的形状的 CIImage 灰度蒙版图像,一个模糊的 CIImage(使用 CIGaussianBlur),然后使用 CIBlendWithMask 将它们混合在一起。
CIBlendWithMask 的输入是输入图像(模糊图像)、输入背景图像(未模糊图像)和蒙版图像(你想要的形状)。输出就是你想要的图像。