【问题标题】:Unexpected result of CISourceOverCompositing when alpha is involved涉及 alpha 时 CISourceOverCompositing 的意外结果
【发布时间】:2015-05-07 20:54:55
【问题描述】:

当尝试使用 CoreImage 在 iOS 上将具有 60% Alpha 通道的图像放置在具有 100% 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结果?

这些是我使用的原始图像:

【问题讨论】:

    标签: ios alpha core-image


    【解决方案1】:

    我仍然无法回答“为什么”的问题,但是通过使用 this 可以获得正确的结果,以及正确的 alpha 值。必须将比例设置为 1.0 才能获得相同的结果。

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2019-10-14
      • 1970-01-01
      • 2011-09-15
      • 2012-04-02
      • 2019-05-14
      • 2017-07-11
      • 2011-04-17
      • 1970-01-01
      相关资源
      最近更新 更多