【发布时间】:2015-11-08 01:31:08
【问题描述】:
例如,我知道颜色在白色时为 #a0c5e8 (160,197,232),在黑色时为 #496e91 (73,110,145)。
有没有办法计算“真实”颜色(不透明度为 100%)?
【问题讨论】:
标签: colors opacity linear-algebra alphablending alpha-transparency
例如,我知道颜色在白色时为 #a0c5e8 (160,197,232),在黑色时为 #496e91 (73,110,145)。
有没有办法计算“真实”颜色(不透明度为 100%)?
【问题讨论】:
标签: colors opacity linear-algebra alphablending alpha-transparency
是的,您可以,通过求解线性方程组。我们以红色通道为例:
变量:
c - 颜色(未知)
f - 不透明度(未知)
方程:
c * f + (1 − f) * 255 = 160。(与白色混合)
c * f + (1 − f) * 0 = 73.(与黑色混合)
重新排列得到:
c * f − 255 f = −95.
c em> * f = 73.
255 f = 168.
因此:
f = 168/255 ≈ 65.9%。
c = 6205/56 ≈ 110.8。
计算其他通道,最终颜色为 (111,167,220),不透明度为 66%。
【讨论】: