Как изменить альфа пикселя, не меняя результирующий цвет? - PullRequest
2 голосов
/ 14 февраля 2012

Дано: пиксель с его цветом (обозначен как PC0) и альфа-значением (обозначен как PA0), который наложен на фон некоторого цвета (обозначен как BC).

Вопрос: Как бы вы изменили альфа-значение пикселя (PA0) для другого значения (обозначенного как PA1), чтобы результирующий составной цвет пикселя и фона не изменился (PBC0 == PBC1)? Другими словами, как бы вы нашли такой ПК1, который делает исходные и результирующие составные цвета (PBC0 и PBC1) похожими?

1 Ответ

3 голосов
/ 15 февраля 2012
PBC0 = PC0*PA0 + BC*(1-PA0)
     = PC1*PA1 + BC*(1-PA1)

Если вы знаете и PA0, и PA1, вы можете решить для PC1.

PC1 = (PC0*PA0 + BC*(1-PA0) - BC*(1-PA1)) / PA1

Редактировать: замените 255 на 1 в приведенном выше, если вы используете общее соглашение значений цвета в диапазоне 0-255.

...