我编写了一个在 SwiftUI 应用中运行良好的小型 CIFilter 例程:
func applyFilter(_ image: UIImage) -> UIImage {
if let filter = CIFilter(name:"CIComicEffect") {
filter.setValue(CIImage(image: image), forKey: kCIInputImageKey)
if let outputImage = filter.outputImage {
let context = CIContext()
if let cgimg = context.createCGImage(outputImage, from: outputImage.extent) {
return UIImage(cgImage: cgimg)
}
}
}
return image
}
但是当我在 iOS 14 小部件中使用它时,
Image(uiImage: uiImage) // works fine
但是
Image(uiImage: applyFilter(uiImage)) // return nothing
不起作用。
PS:经过进一步测试,似乎 CIComicEffect 不起作用,但 CISepiTone 起作用了。知道为什么吗?