【问题标题】:I'm looking for an algorithm to calculate the second color using the color mixing formula我正在寻找一种算法来使用颜色混合公式计算第二种颜色
【发布时间】:2020-03-18 13:28:10
【问题描述】:

好吧,我使用搜索来找到我的问题的答案,但它没有得到我正在寻找的结果,所以我将尝试在这里询问:

如果我知道混合颜色的公式:

resultColorRGB = [round(firstColorR * alpha + secondColorR * (1 - alpha))], [round(firstColorG * alpha + secondColorG * (1 - alpha))], [round(firstColorB * alpha + secondColorB * (1 - alpha))]

其中 alpha ∈ [0..1].

如果我知道第一种颜色和结果的颜色,我如何找到第二种颜色呢?

例如: 圆形(35 * alpha + 255 * (1 - alpha))= 204,圆形(alpha * 15 + 0 * (1 - alpha))= 3,圆形(alpha * 0 + 153 * (1 - alpha))= 118 , α = 0.23

我不能使用求解线性方程组的方法,原因有两个(据我了解):alpha 不是整数,结果是通过四舍五入计算的。

但我确信有一些方法可以估计近似计算,而无需使用迭代。

【问题讨论】:

    标签: algorithm colors calculation alphablending


    【解决方案1】:

    如果所有值都是准确的,那么您就有等式 aA+(1-a)B=C,其中 A 和 B 是您的两种输入颜色,a 是 alpha,C 是输出颜色。 A、B 和 C 中的每一个都是红色、绿色、蓝色的三元组,但这对数学没有影响;他们每个人都可以被独立对待。

    如果您有 A 和 C,以及 alpha 值 a,那么您有 B=(C-aA)/(1-a)。它不精确的事实并不重要。您可以精确计算这些值,然后四舍五入。您无法准确地找回 B,因为在原始混合中丢失了信息。

    【讨论】:

      猜你喜欢
      • 2019-10-20
      • 2019-04-17
      • 2013-08-02
      • 2011-12-22
      • 2019-10-31
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多