为什么 CIFilter.differenceBlendMode 的行为与 View 的 BlendMode 属性不同?

问题描述 投票:0回答:1
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)
        }
    }
}

这会产生两个不同的图像。

过滤器中缺少什么?

swift swiftui core-image blend-mode
1个回答
0
投票

这是色彩空间的问题

let context = CIContext(options: [
    .workingColorSpace: CGColorSpaceCreateDeviceRGB()
])

修好了

© www.soinside.com 2019 - 2024. All rights reserved.