有没有可以取得半透明颜色的取色器?

2023-02-06  本文已影响0人  天下第九九八十一

根据已有的透明度来计算每个通道的颜色分量。这其实用数学推导的方法更容易一些。我们已经知道,在背景色上如何叠加半透明色,其 RGB 颜色分量的计算方法为:

solid_and_alpha
—— Alpha 混合:两个半透明色的叠加_richardbao2000

怎么根据这个原理制作半透明颜色的取色器呢,实在不想解方程啊。

两个未知量 a1 c1。需要两个方程,即未知颜色叠加在两个背景上的色彩。

二元一次方程怎么解来着,好像有公式?

整理下

v = c - cx + xy
v' = c' - c'x + xy

这是几次方程啊……

v-v' = c-c' - (c-c')x

(c-c')x = (c-c') - (v-v')

得 x = 1 - (v-v') / (c-c'),即为不透明度alpha,取值 0-1。


上取色器,c 白色 黑色,取两个值。

c v
0xFFFFFF 0xCCE8FF
0x000000 0x001C33

解得 alpha= 1 - 0xCCCCCC / 0xFFFFFF = 0.1999……

呵呵哒 我就不信有人能心算

python 是个不错的计算器,管不得大家都喜欢。

alpha 算他 0.2,则色彩值就是 y=

v = c - cx + xy

取背景色 c 为零,则 y= v/x = 0x001C33 / 0.2 = 36095.0 = 8CFF

那么合起来原色因该是 0x33008CFF

screenshots.gif

正确。不过通道分量不因该分开来算么?

上一篇 下一篇

猜你喜欢

热点阅读