Вопрос по colors – Определите цвет RGBA, полученный путем объединения двух цветов

8

У меня есть два цвета, определенные как RGBA (в моих конкретных примерах один из набора - [белый с альфа 0,85] и [57, 40, 28 с альфа 0,25]. Второй цвет рисуется поверх первого (то есть белый с альфа является фоном, а второй цвет используется для рисования.) Как я могу выяснить, каким будет цвет RGBA комбинации? Мне нужно сделать это одноразово - так что с любыми инструментами все в порядке (например, я счастлив нарисовать что-нибудь в фотошопе и посмотреть что получится).

У меня есть несколько наборов для объединения, но не слишком много. Есть указатели? Благодарю.

Ваш Ответ

1   ответ
18

Когда используешьАлгоритм художника большинство цветовых композиций выполняется с использованиемPorter-Duff & Quot; Над & Quot; Режим:

Результирующая альфа:

αr = αa + αb (1 - αa)

Результирующие цветовые компоненты:

Cr = (Ca αa + Cb αb (1 - αa)) / αr

Итак, для вашего примера:

alpha = 0.25 + 0.85 * (1 - 0.25)                        = 0.8875

red   = (57 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 199.2
green = (40 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 194.4
blue  = (28 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875  = 191.1

Увидетьстатья в википедии на альфа-композитинг.

Большое спасибо! За исключением того, что вы, кажется, поменялись местами вокруг. Если я буду следовать этой статье, мне нужно заменить два цвета вокруг в вашем ответе. Aleks G
@AndersonGreenαa, αb а такжеαr три переменные. Они обозначают первый источник (a), второй источник (b) и альфа-компоненты результата (r).
К сожалению, я не полностью прочитал вопрос и поставил белый цвет на переднем плане. Но вы правы: Ca - это передний план, Cb - это фон.
Я смущен примечанием, которое используется здесь. Являютсяa а такжеα одна и та же переменная, или это разные переменные?
@NikolaiRuhe Что делатьCr, Ca а такжеCb представлять, тогда?

Похожие вопросы