如何在Swift5和iOS13中使用CIFilter sunbeamsGenerator?
How to use CIFilter sunbeamsGenerator in Swift 5 and iOS 13?
拜托,有人可以为我提供 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
看看你能用它做什么。
拜托,有人可以为我提供 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
看看你能用它做什么。