【问题标题】:Calculate a color with opacity based on it's values over other colors?根据其他颜色的值计算具有不透明度的颜色?
【发布时间】:2015-11-08 01:31:08
【问题描述】:

例如,我知道颜色在白色时为 #a0c5e8 (160,197,232),在黑色时为 #496e91 (73,110,145)。

有没有办法计算“真实”颜色(不透明度为 100%)?

【问题讨论】:

    标签: colors opacity linear-algebra alphablending alpha-transparency


    【解决方案1】:

    是的,您可以,通过求解线性方程组。我们以红色通道为例:

    变量:
    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%。

    【讨论】:

    • 完美!数学检查,视觉测试也是如此!最终颜色为 rgba(111, 167, 220, 0.659)
    • 我正在尝试将这个等式用于我正在研究的东西。但我一辈子都搞不明白你是怎么得到 6205 和 56 的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2016-04-24
    相关资源
    最近更新 更多