9

我有两种颜色定义为 RGBA(在我的具体示例中,其中一种是 [alpha 为 0.85 的白色] 和 [57、40、28 的 alpha 为 0.25]。第二种颜色绘制在第一种颜色上(即白色与 alpha是背景,第二种颜色用于绘图)。我怎样才能确定组合的 RGBA 颜色是什么?我需要一次性完成 - 所以任何工具都可以(例如,我很高兴在 Photoshop 中画一些东西,看看结果如何)。

我有几套要组合,但不要太多。任何指针?谢谢。

4

1 回答 1

21

使用Painter 算法时,大多数颜色合成是使用Porter-Duff “Over”模式完成的:

产生的阿尔法:

αr = αa + αb (1 - αa)

产生的颜色分量:

Cr = (Ca αa + Cb αb (1 - αa)) / αr

所以对于你的例子:

alpha = 0.25 + 0.85 * (1 - 0.25)                        = 0.8875

red   = (57 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 199.2
green = (40 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 194.4
blue  = (28 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 191.1

请参阅有关 alpha 合成的维基百科文章。

于 2012-05-28T09:30:55.730 回答