[英]How to use CIFilter sunbeamsGenerator in Swift 5 and iOS 13?
请问,有人可以为我提供 Swift 5 和 iOS 13 中CIFilter
的示例代码吗?
我正在尝试创建一个扩展来应用此过滤器,但出现此错误:
*** 由于未捕获的异常“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
}
检查CISumbeamsGenerator
的参数,看看你可以用它做什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.