无法使用UISlider降低CIVignette效果 [英] Unable to Decrease CIVignette effect using UISlider
本文介绍了无法使用UISlider降低CIVignette效果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在我的照片编辑应用中使用了 CIVignette
效果。它基于Slider的Changeing事件应用。我使用了以下代码,但我的问题是每当出现增加滑块值的Vignette效果时出现,但每当我降低滑块值的Vignette效果都不会减少。
请帮助。 b $ b
@IBAction函数滑块(_发送者:UISlider){
让startImage = CIImage(image:imgEdited!)!
让vignetteFilter = CIFilter(name: CIVignette)!
让半径= 5
vignetteFilter.setValue(startImage,forKey:kCIInputImageKey)
vignetteFilter.setValue(sender.value,forKey: inputIntensity)
vignetteFilter.setValue(radius,forKey: inputRadius)
让filteredImageData = vignetteFilter.value(forKey:kCIOutputImageKey)为! CIImage
让filteredImageRef = self.context.createCGImage(filteredImageData,来自:filteredImageData.extent)
imgImage.image = UIImage.init(cgImage:filteredImageRef!)
self.imgEdited = imgImage.image
}
解决方案
下面的代码根据我对其他 SO
帖子的回答
I have used CIVignette
effect for My Photo Editing app. It applying based on Slider's Changing event. I have used following code and my issue is whenever I increased slider's value Vignette effect is appeared but whenever I decrease slider's value the Vignette effect does not decrease.
Please Help.
@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
}
解决方案
Below code based on my answer to the other SO
post 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
}
Output from the Sim:
这篇关于无法使用UISlider降低CIVignette效果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文