1

2种颜色混合在一起。如果我有结果颜色的 RGB 和混合颜色之一的 RGB,那么我可以以某种方式计算第二种颜色?

我将尝试从视觉上解释我要说的内容。这是一个flickr链接

http://www.flickr.com/photos/48150615@N08/4407414157

我知道中间的圆圈有 20% 的不透明度

有什么方法可以知道圆圈的颜色值,以便我可以扣除它以获得与背景颜色相同的颜色值。

4

4 回答 4

3

如果我正确理解了任务...

让我们做一些学校数学

c 是初始图像的颜色,t 是透明颜色的颜色,a(对于 alpha)是透明度,c' 是结果颜色。

c' = (1 - a) * t + a * c

你想找到c。

c = (c' - (1 - a) * t) / a

你需要知道a、t和c'

于 2010-03-04T17:58:34.260 回答
3

首先,这取决于您将如何混合它们。也就是说,您可以平均 RGB 分量(这意味着蓝色 (0,0,255) + 黄色 (255,255,0) == 灰色 (128,128,128)),或者您可以处理色调、饱和度和值,这通常会提供更多“如预期”的结果。

无论如何,无论哪种情况,这都是一些简单的数学运算:

  • 如果获得平均值的方法是C3 = (C1 + C2) / 2
  • 那么找到C2的方法是C2 = (C3 * 2) - C1
于 2010-03-05T04:00:59.413 回答
1

CIELAB 颜色空间是专门为计算颜色之间的差异而设计的,但在你的情况下它可能有点矫枉过正。可能 HSV 对您来说是一个简单的解决方案。

于 2010-03-15T13:15:45.653 回答
0

只需减去每个组件。组件通常以十六进制格式存储,在这种情况下,您需要将数字转换为十进制或进行十六进制数学运算。

于 2010-03-05T03:59:46.413 回答