请问有人可以为我提供 Swift 5 和 iOS 13 中的 CIFilter
sunbeamsGenerator 的示例代码吗?
我正在尝试创建一个扩展来应用此过滤器,但出现此错误:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key 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
看看你能用它做什么。
关于ios - 如何在 Swift 5 和 iOS 13 中使用 CIFilter sunbeamsGenerator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59768604/