ios - 无法使用 UISlider 降低 CIVignette 效果

标签 ios swift3 core-image cifilter

我用过CIVignette我的照片编辑应用程序的效果。它基于 Slider 的变化事件应用。我使用了以下代码,我的问题是每当我增加 slider 的值时出现晕影效果,但每当我降低 slider 的值时,晕影效果不会降低。
请帮忙。

@IBAction func slider(_ sender: UISlider) {

        let startImage = CIImage(image: imgEdited!)!

        let vignetteFilter = CIFilter(name: "CIVignette")!

        let radius = 5

        vignetteFilter.setValue(startImage, forKey:kCIInputImageKey)
        vignetteFilter.setValue(sender.value, forKey:"inputIntensity")
        vignetteFilter.setValue(radius, forKey:"inputRadius")

        let filteredImageData = vignetteFilter.value(forKey: kCIOutputImageKey) as! CIImage
        let filteredImageRef = self.context.createCGImage(filteredImageData, from: filteredImageData.extent)

        imgImage.image = UIImage.init(cgImage: filteredImageRef!)
        self.imgEdited = imgImage.image
}

最佳答案

以下代码基于我对其他 SO 的回答发表 Blur effect using slider Is not working properly .

 @IBAction func slider(_ sender: UISlider) {

    let startImage = CIImage(image: UIImage(named: "Your Image Name")!) // You should initialise your UIImage here not UIImageView
    let vignetteFilter = CIFilter(name: "CIVignette")! 

    vignetteFilter.setValue(startImage, forKey:kCIInputImageKey)
    vignetteFilter.setValue(sender.value, forKey:kCIInputIntensityKey)
    vignetteFilter.setValue(5, forKey:kCIInputRadiusKey)

    let filteredImageData = vignetteFilter.value(forKey: kCIOutputImageKey) as! CIImage
    let filteredImageRef = self.context.createCGImage(filteredImageData, from: filteredImageData.extent)

    self.imgView.image = UIImage.init(cgImage: filteredImageRef!) // Output

 }

Sim 的输出:

enter image description here

关于ios - 无法使用 UISlider 降低 CIVignette 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46660138/

相关文章:

ios - 使用 Swift 滑动移动 UIImage 的 X 坐标

ios - AVAudioSession中断和路由变化

ios - 如何从 json 按日期排序帖子

ios - 核心图像过滤器CISourceOverCompositing无法正常工作

ios - 在我们之前尚未在 GMSPlacePickerViewController 实例上设置委托(delegate)

javascript - 为什么移动 safari 似乎会给出与桌面浏览器不同的 Javascript Date() 结果?

objective-c - 操作完成后更改页面

swift - 使用 CGRect 将用户填写的 UITextView 叠加在图像上,这与合并两个图像不同吗?

swift - 如何在 Swift 3 中向图像添加文本?

cocoa - CATransition 与 CIFilter 第一次不起作用,第二次起作用