Я хотел бы знать, что означает 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.