9

我正在寻找一个公式来转换它们。

我知道要转换一般透明度

阿尔法 * 新 + ( 1 - 阿尔法 ) * 旧

我有:

Color A : RGB( 85, 113, 135 )
Color B : RGB( 43, 169, 225 )

颜色 A 具有 90% 的不透明度并位于颜色 B 的顶部,从而产生

Color C : RGB( 65, 119, 145 )

我的问题是,它是如何获得颜色 C 的?如果我用颜色 B 代替另一种东西,我如何获得颜色 C?

这是另一个示例,相同的基色:

Color A : RGB( 85, 113, 135 )
Color B : RGB( 45, 67, 82 )
--------
Color C : RGB( 65, 109, 131 )

这些是用图像完成的工作示例——我现在正在尝试计算剩余的颜色 C,以便我可以分配背景颜色。


更新,请参阅接受的答案。上面的red例子很奇怪——接受的答案对所有颜色都有正确的公式,我在 Photoshop 中对其进行了测试。

4

1 回答 1

7

看来您的公式正是您的示例中使用的公式,按组件计算并四舍五入。

R_c := 上限(R_a * alpha) + 上限 (R_b * (1 - alpha))

G_c := ceiling(G_a * alpha) + ceiling (G_b * (1 - alpha))
B_c := ceiling(B_a * alpha) + ceiling (B_b * (1 - alpha))

奇怪的是,R 组件似乎没有遵守规则。我很想知道为什么。

于 2010-08-17T19:29:13.200 回答