Я хотел бы знать, что PorterDuff.Mode означает в графике Android.
Я знаю, что это режим передачи .
Я также знаю, что у него есть такие атрибуты, как DST_IN, Multiply и т. Д.
Я хотел бы знать, что PorterDuff.Mode означает в графике Android.
Я знаю, что это режим передачи .
Я также знаю, что у него есть такие атрибуты, как DST_IN, Multiply и т. Д.
Ответы:
Вот отличная статья с иллюстрациями инженера Google:
http://ssp.impulsetrain.com/porterduff.html
PorterDuff описывается как способ объединения изображений, как если бы они были «кусочками картона неправильной формы», наложенными друг на друга, а также как схема смешивания перекрывающихся частей.
Способ создания изображений по умолчанию для Android - это PorterDuff.Mode.SRC_OVER , который соответствует рисованию исходного изображения / цвета поверх целевого изображения. Другими словами, он делает то, что вы ожидаете, и рисует исходное изображение (изображение, которое вы рисуете) поверх конечного изображения (холста), причем конечное изображение отображается до степени, определенной альфа-каналом исходного изображения.
Вы можете использовать ключ ниже, чтобы понять алгебру, которую используют документы Android для описания других режимов ( более полное описание с похожими терминами см. В статье ).
Где альфа является значением [0..1]
, а цвет заменяется один раз на канал (поэтому используйте формулу один раз для каждого из красного, зеленого и синего)
Полученные значения указываются в виде пары в квадратных скобках следующим образом.
[<alpha-value>,<color-value>]
Где alpha-value
и color-value
- формулы для генерации результирующего альфа-канала и каждого цветового канала соответственно.
Он определяет, как составлять изображения на основе альфа-значения. Подробнее здесь http://en.wikipedia.org/wiki/Alpha_compositing