无法使用 UISlider 降低 CIVignette 效果
Unable to Decrease CIVignette effect using UISlider
我为“我的照片编辑”应用程序使用了 CIVignette
效果。它基于 Slider 的 Changing 事件应用。我使用了以下代码,我的问题是每当我增加滑块的值时就会出现晕影效果,但每当我减少滑块的值时晕影效果就不会减少。
请帮助。
@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
post .
的回答
@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 的输出:
我为“我的照片编辑”应用程序使用了 CIVignette
效果。它基于 Slider 的 Changing 事件应用。我使用了以下代码,我的问题是每当我增加滑块的值时就会出现晕影效果,但每当我减少滑块的值时晕影效果就不会减少。
请帮助。
@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
post
@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 的输出: