struct ContentView: View {
var processed: CIImage {
let filter = CIFilter.differenceBlendMode()
filter.inputImage = UIImage(resource: .image).cgImage.map({CIImage(cgImage: $0)})
filter.backgroundImage = UIImage(resource: .whiteBg).cgImage.map({CIImage(cgImage: $0)})
return filter.outputImage!
}
var body: some View {
VStack(spacing: 0) {
Image(ciImage: processed)
.resizable()
.scaledToFit()
Image(.image)
.resizable()
.scaledToFit()
.blendMode(.difference)
}
}
}
这会产生两个不同的图像。
过滤器中缺少什么?
这是色彩空间的问题
let context = CIContext(options: [
.workingColorSpace: CGColorSpaceCreateDeviceRGB()
])
修好了