language-agnostic - 通过组合两种颜色来确定接收到的RGBA颜色

标签 language-agnostic colors rgba

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

我可以组合几套,但不要太多。有指针吗?谢谢。

最佳答案

当使用Painter's algorithm时,大多数色彩合成都是使用Porter-Duff“Over”模式完成的:

产生的alpha:

α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合成,请参见wikipedia article

关于language-agnostic - 通过组合两种颜色来确定接收到的RGBA颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781953/

相关文章:

r - 如何将 ggplot 直方图 x 轴间隔映射到固定调色板?

php - 如何将 RGB(A) 值保存在数组中?

language-agnostic - 最奇怪的语言功能

c - %g printf 说明符到底是什么意思?

database - 三个客户地址在一个表中还是在不同的表中?

css - 具有两种颜色的 SVG/CSS 描边虚线 - 这可能吗?

bash - 如何从变量中去除 ANSI 转义序列?

css - 为什么我的页脚背景在设置为位置 :static? 时会失去 RGBA 透明度

css - 子元素和父元素,均具有 RGBA 背景。如何确定 "equivalent"rgba?

algorithm - 你从这个 splinter 的随机洗牌中得到什么分布?