根据颜色相对于其他颜色的值计算具有不透明度的颜色?
Calculate a color with opacity based on it's values over other colors?
例如,我知道颜色超过白色时是#a0c5e8 (160,197,232),超过黑色时是#496e91 (73,110,145)。
有没有办法计算 "real" 颜色(100% 不透明度)?
是的,你可以,通过求解线性方程组。我们以红色通道为例:
变量:
c - 颜色(未知)
f - 不透明度(未知)
方程式:
c * f + (1 − f) * 255 = 160。(与白色混合)
c * f + (1 − f) * 0 = 73.(与黑色混合)
重新排列得到:
c * f − 255 f = −95.
c * f = 73.
255 f = 168.
因此:
f = 168/255 ≈ 65.9%.
c = 6205/56 ≈ 110.8.
计算其他通道,您的最终颜色为 (111,167,220),不透明度为 66%。
例如,我知道颜色超过白色时是#a0c5e8 (160,197,232),超过黑色时是#496e91 (73,110,145)。
有没有办法计算 "real" 颜色(100% 不透明度)?
是的,你可以,通过求解线性方程组。我们以红色通道为例:
变量:
c - 颜色(未知)
f - 不透明度(未知)
方程式:
c * f + (1 − f) * 255 = 160。(与白色混合)
c * f + (1 − f) * 0 = 73.(与黑色混合)
重新排列得到:
c * f − 255 f = −95.
c * f = 73.
255 f = 168.
因此:
f = 168/255 ≈ 65.9%.
c = 6205/56 ≈ 110.8.
计算其他通道,您的最终颜色为 (111,167,220),不透明度为 66%。