【问题标题】:Apply CiFilter GaussianBlur应用 CiFilter GaussianBlur
【发布时间】:2015-08-26 01:07:07
【问题描述】:

正如标题所说,我需要将 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?

编辑:谢谢你们,但我还有一个问题;我只需要像这样对图像的一小部分应用模糊

【问题讨论】:

    标签: swift blur gaussian cifilter ciimage


    【解决方案1】:

    我刚刚尝试了您的代码,这是我建议的修改,这是可行的:

        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】:

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

      【讨论】:

      • 是的!所以我意识到我必须学习苹果论证。最后一个问题:打开我在其中应用 CIFilter 的 iOS 模拟器的视图是否可能使用大量资源(大约 60 mb 内存,而不是之前使用的 30 个)?
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-11-01
        • 2016-02-01
        • 2013-04-14
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 2015-07-02
        相关资源
        最近更新 更多