Compositing layer styles
我正在尝试从 Adob??e Photoshop 实现"内阴影"样式。
我有 3 个 RGBA 层:源层(棕色)、内阴影层(白色)和背景层。它们可以具有类似 Photoshop 的混合模式(正常、正片叠底、颜色加深...) - 混合不是关联的!
我想将它们混合在一起,就像 Photoshop 中的图层样式一样。当我将阴影 alpha 乘以源 alpha 并混合(阴影覆盖(源覆盖背景))时,我在对象周围得到了深色轮廓,其中源 alpha 介于 0 和 1 之间。
Photoshop 参考在左边,我的结果在右边。
我在 PDF 格式 1.7 规范的第 339 页找到了这个问题的答案。
所以,合成(阴影与(源与背景))是错误的。正确的做法是:
将源与背景合成到临时通道 C 中,忽略源的 alpha 并在任何地方使用 1.0 的 alpha 值。
以标准方式将(未裁剪的)阴影与 C 合成到 C 中。
使用源 alpha 计算 C 与背景的加权平均值
作为权重因子。
如您所见,阴影与源和背景混合在一起。加权平均是我正在寻找的函数。