Можем ли мы узнать разницу между 2 цветами RGb, чтобы найти третий цвет? - PullRequest
1 голос
/ 05 марта 2010

2 цвета смешаны вместе. Если у меня есть RGB для результирующего цвета и RGB для одного из смешанных цветов, то каким-то образом я мог бы вычислить 2-й цвет?

Я попытаюсь визуально объяснить, что я пытаюсь сказать. Вот ссылка Flickr

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

Я знаю, что круг в середине имеет непрозрачность 20%

Есть ли способ узнать значение цвета круга, чтобы я мог вычесть его, чтобы получить то же значение цвета, что и цвет фона.

Ответы [ 4 ]

3 голосов
/ 05 марта 2010

Во-первых, это зависит от того, как вы собираетесь их смешивать.Таким образом, вы можете усреднить компоненты RGB (это означает синий (0,0,255) + желтый (255,255,0) == серый (128,128,128)), или вы можете работать с Hues, Saturation and Value, что часто дает гораздо больше«как и ожидалось», результат.

В любом случае, в любом случае это просто математика:

  • , если способ получить среднее значение C3 = (C1 + C2) / 2
  • , тоспособ найти C2 - C2 = (C3 * 2) - C1
3 голосов
/ 04 марта 2010

если я правильно понял задачу ...

давайте сделаем немного математики

c - цвет исходного изображения, t - цвет прозрачного цвета, a (для альфы) - прозрачность, c '- цвет результата.

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

вы хотите найти c.

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

вам нужно знать a, t и c '

1 голос
/ 15 марта 2010

Цветовое пространство CIELAB специально разработано для расчета различий между цветами, но в вашем случае это может быть излишним. Возможно, HSV - это простое решение для вас.

0 голосов
/ 05 марта 2010

Просто вычтите каждый компонент.Компоненты часто хранятся в шестнадцатеричном формате, в этом случае вам нужно будет преобразовать числа в десятичное или выполнить шестнадцатеричное вычисление.

...