Что означает PorterDuff.Mode в графике Android. Что он делает?

Я хотел бы знать, что означает PorterDuff.Mode в графике Android.

Я знаю, что это режим передачи.

Я также знаю, что у него есть такие атрибуты, как DST_IN, Multiply и т. д.


person rogerstone    schedule 26.11.2011    source источник
comment
из моего недавнего открытия. если у вас есть перекрывающиеся изображения и вы пытаетесь изменить цветовой фильтр одного из них, это повлияет на другое изображение, которое перекрывает его!   -  person Jonathan    schedule 28.10.2014


Ответы (2)


Вот отличная статья с иллюстрациями инженера Google:

http://ssp.impulsetrain.com/porterduff.html

PorterDuff описывается как способ объединения изображений, как если бы они были «кусками картона неправильной формы», наложенными друг на друга, а также как схема смешивания перекрывающихся частей.

Способ компоновки изображений в Android по умолчанию — PorterDuff.Mode.SRC_OVER, что соответствует для рисования исходного изображения/цвета поверх целевого изображения. Другими словами, он делает то, что вы ожидаете, и рисует исходное изображение (то, которое вы рисуете) поверх целевого изображения (холста), при этом целевое изображение просвечивает до степени, определяемой альфа-каналом исходного изображения.

Инфографика PorterDuff из статьи

Вы можете использовать ключ ниже, чтобы понять алгебру, которую документы Android используют для описания другие режимы (более полное описание с похожими терминами см. в статье).

  • Sa Исходный альфа-канал
  • Sc Исходный цвет
  • Да Альфа-адрес назначения
  • Dc Целевой цвет

Где альфа — это значение [0..1], а цвет заменяется один раз на канал (поэтому используйте формулу один раз для каждого из красного, зеленого и синего)

Результирующие значения указываются в виде пары в квадратных скобках следующим образом.

[<alpha-value>,<color-value>]

Где alpha-value и color-value — формулы для создания результирующего альфа-канала и каждого цветового канала соответственно.

person Phasmal    schedule 03.09.2014

Он определяет, как составлять изображения на основе альфа-значения. Подробнее см. здесь http://en.wikipedia.org/wiki/Alpha_compositing.

person yoah    schedule 14.04.2013