[请为我提供Swift 5和iOS 13中CIFilter
sunbeamsGenerator的示例代码吗?
我正在尝试创建扩展程序以应用此过滤器,但出现此错误:
***由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类与键inputImage的键值编码不兼容。'
该代码对模糊滤镜有效,但对sunbeamsGenerator不起作用
import UIKit
import CoreImage.CIFilterBuiltins
public extension UIImage {
public func withBlurFilter() -> UIImage {
let ciImage = CIImage(image: self)!
let filter = CIFilter.gaussianBlur()
filter.inputImage = ciImage
filter.radius = 30
let vintage = ciImage.applyingFilter(filter.name)
return vintage.uiImage()
}
public func withSunFilter() -> UIImage {
let ciImage = CIImage(image: self)!
let filter = CIFilter.sunbeamsGenerator()
let sunbeam = ciImage.applyingFilter(filter.name)
return sunbeam.uiImage()
}
}
感谢您,我是CoreImage的新手
[CISunbeamsGenerator
不需要输入图像-它会产生光束效果(因此得名),例如,您可以用来混合另一幅图像。
当您调用ciImage.applyingFilter(...)
时,它将尝试将图像作为inputImage
分配给指定的滤镜。但是生成器没有该属性,因此会出现错误。
您可以改为执行以下操作:
public func withSunFilter() -> UIImage {
let ciImage = CIImage(image: self)!
let filter = CIFilter.sunbeamsGenerator()
let sunbeam = filter.outputImage!
let output = sunbeam.composited(over: ciImage)
return output.uiImage
}
检查parameters of CISumbeamsGenerator
以查看您可以做什么。