当尝试使用CoreImage在具有100%alpha通道的另一个图像上放置具有60%alpha通道的图像时,我得到了一个我没有预料到的结果。如果我拍摄两张图像并将scene_2_480p放在scene_480p上,就像这样:
let back: CIImage = loadImage("scene_480p", type: "jpg");
let front: CIImage = loadImage("scene_2_480p", type: "png");
let composeFilter: CIFilter = CIFilter(name: "CISourceOverCompositing");
composeFilter.setDefaults();
composeFilter.setValue(front, forKey: kCIInputImageKey);
composeFilter.setValue(back, forKey: kCIInputBackgroundImageKey);
let result: CIImage = composeFilter.outputImage;
我明白了:
如果我对gimp做同样的事情,并将相同的两个图像放在两个重叠的层上,我得到:
结果很接近,但不一样。任何人都可以解释为什么结果不一样以及如何获得相同的gimp结果?
这些是我使用的原始图像: