我有一个圆形的imageview。我设置了它的图像并给出了下面的色调效果。
let filter = CIFilter(name: "CIPhotoEffectTonal")!
filter.setDefaults()
...
filter.setValue(startImage, forKey: kCIInputImageKey)
let filteredImageData = filter.valueForKey(kCIOutputImageKey) as! CIImage
let filteredImage = ciContext.createCGImage(filteredImageData, fromRect: filteredImageData.extent)
我想提供另一种效果,例如Instagram上的倾斜移位,以使照片在我的图像视图的边缘更亮/模糊。这样,圆形图像视图和背景之间的色差将被消除/更少。
有没有办法让它成为现实?
答案 0 :(得分:0)
我使用以下代码部分解决了我的问题。
谢谢@Eric D,你的链接向我展示了这条路。
func vignetteEffect(image: UIImage) -> UIImage {
let originalImage = image
let ciContext = CIContext(options: nil)
let startImage = CIImage(image: originalImage)
// Vignette Effect
let vignetteFilter = CIFilter(name:"CIVignette")!
vignetteFilter.setDefaults()
let radius = 8
vignetteFilter.setValue(startImage, forKey:kCIInputImageKey)
vignetteFilter.setValue(-5, forKey:"inputIntensity")
vignetteFilter.setValue(radius, forKey:"inputRadius")
let filteredImageData = vignetteFilter.valueForKey(kCIOutputImageKey) as! CIImage
let filteredImageRef = ciContext.createCGImage(filteredImageData, fromRect: filteredImageData.extent)
return UIImage(CGImage: filteredImageRef)
}