我一直在尝试将 GIMP (GEGL) 的一些图层混合模式实现到 Python。目前,我陷入了减法混合模式。根据文档,Subtract = max(Background - Foreground, 0)
. 然而,在 GIMP 中用Background image = (205,36,50)
和做一个简单的测试Foreground image = (125,38,85)
,得到的合成图像/颜色(170, 234, 0)
与上面的数学不太相符。
据了解,Subtract 不使用 Alpha Blending。那么,这可能是一个合成问题吗?或者减法遵循不同的数学?更多细节和背景可以在单独的SO问题中找到。
编辑 [14/10/2021]:我尝试将此图像作为我的来源。对范围内归一化的图像执行以下步骤[0, 1]
:
- 应用了颜色减淡(之前没有进行转换
sRGB -> linear RGB
)并从我的实现中获得了与 GIMP 结果匹配的结果。 sRGB -> linear RGB
颜色减淡和源图像的转换。[参考]- 应用减法混合
Background = Colour Dodge
和Foreground = Source Image
- 重新转换
linear RGB-> sRGB
我从 POC获得这个。左 RGB 三元组:(69,60,34);右 RGB 三元组:(3,0,192)。和 GIMP结果。左 RGB 三元组:(69,60,35);右 RGB 三元组:(4,255,255)