Как изменить альфа пикселя, не меняя результирующий цвет?
Дано: пиксель с его цветом (обозначен как 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.