Как смешивать два пикселя ARGB?

Как я могу объединить два пикселя ARGB?

Пример

Source: en.wikipedia.org/wiki/Alpha_compositing#mediaviewer/File:Alpha_compositing.svg

Здесь A (красный с альфой), а B (синий с альфой).

Ответ 1

Взято из той же статьи в Википедии, где вы получили изображение:

C_o = C_a \alpha_a + C_b \alpha_b \left(1 - \alpha_a\right)

Перевод значений в диапазоне от 0 до 255:

rOut = (rA * aA / 255) + (rB * aB * (255 - aA) / (255*255))
gOut = (gA * aA / 255) + (gB * aB * (255 - aA) / (255*255))
bOut = (bA * aA / 255) + (bB * aB * (255 - aA) / (255*255))
aOut = aA + (aB * (255 - aA) / 255)

Ответ 2

Похоже, это то, что вы хотите: http://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending, но я немного смущен вашей нотацией, так как википедия говорит, что значения argb должны варьироваться от 0.0 до 1.0. Поэтому я не думаю, что эта формула даст вам FA = 19. Вы можете уточнить?

Изменить: теперь, когда вы вышли из бизнеса по поводу FA = 19, я склонен идти с этой формулой.