首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减法混合模式

减法混合模式
EN

Stack Overflow用户
提问于 2021-10-13 06:55:46
回答 1查看 181关注 0票数 1

我一直在尝试实现GIMP (GEGL)到Python的一些层混合模式。目前,我被困在减法混合模式。根据文档Subtract = max(Background - Foreground, 0)。然而,在GIMP中做一个简单的测试,使用Background image = (205,36,50)Foreground image = (125,38,85),得到的复合图像/颜色变成了(170, 234, 0),这与上面的数学不太一样。

据了解,减法不使用阿尔法混合。那么,这会是一个复杂的问题吗?还是按照不同的数学进行减法?更多的细节和背景可以在一个单独的所以问题中找到。

编辑14/10/2021:我尝试以图像作为我的源。对在范围[0, 1]中规范化的图像执行以下步骤

  1. 应用Colour (没有事先从sRGB -> linear RGB进行转换)并从我的实现中获得了与GIMP结果相匹配的
  2. 彩色道奇和源图像的sRGB -> linear RGB转换。[参考资料((%22伽马%22%29))
  3. Background = Colour DodgeForeground = Source Image进行减法混合
  4. 再转换linear RGB-> sRGB

我从POC获得。左RGB三重奏:(69,60,34);右RGB三重奏:(3,0,192)。和GIMP 结果。左RGB三重奏:(69,60,35);右RGB三重奏:(4,255,255)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-13 09:20:00

如果您正在查看0 ➞ 255范围内的通道值,则它们很可能是伽马校正的。手术可能是这样进行的:

  • 使用以下方法将0.0 ➞ 1.0范围内的每一层转换为“线性光”
代码语言:javascript
复制
L = ((V/255) ** gamma) (*)
  • 应用“差异”公式
  • 将结果转换为伽马校正:
代码语言:javascript
复制
V = (255 * (Diff ** (1/gamma)))

使用gamma=2.2,你可以得到170个红色频道,但我不明白为什么你会在绿色频道上得到234个。

(*)对于非常低的IIRC,实际公式有一个特例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69550967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档