Ответ 1
Вот отличная статья с иллюстрациями инженера Google:
http://ssp.impulsetrain.com/porterduff.html
PorterDuff описывается как способ комбинирования изображений, как если бы они были "фигурами неправильной формы картона", наложенными друг на друга, а также схемой для смешивания перекрывающихся частей.
Стандартный способ компоновки изображений по умолчанию - PorterDuff.Mode.SRC_OVER, который приравнивает к рисованию исходного изображения/цвета поверх целевого образ. Другими словами, он делает то, что вы ожидаете, и рисует исходное изображение (то, что вы рисуете) поверх целевого изображения (холста) с изображением цели, отображаемым до степени, определяемой исходным изображением alpha.
Вы можете использовать ключ ниже, чтобы понять алгебру, которую Android-документы используют для описания других режимов (см. статью для более полного описания с аналогичными условиями).
- Sa Источник альфа
- Sc Цвет источника
- Da Назначение alpha
- Dc Цвет назначения
Где альфа - значение [0..1]
, а цвет заменяется один раз на канал (поэтому используйте формулу один раз для каждого из красного, зеленого и синего)
Результирующие значения указаны в виде пары в квадратных скобках следующим образом.
[<alpha-value>,<color-value>]
Где alpha-value
и color-value
- формулы для генерации получаемой альфа-канала и каждой цветной шали соответственно.