Как изменить альфа пикселя, не меняя результирующий цвет?

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

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

1 ответ

Решение
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.

Другие вопросы по тегам