Що означає PorterDuff.Mode у графіці для Android. Що це робить?


142

Мені хотілося б знати, що означає PorterDuff.Mode в андроїд-графіці.

Я знаю, що це режим передачі .

Я також знаю, що він має такі атрибути, як DST_IN, Множити і т.д.


з мого недавнього відкриття. якщо у вас є зображення, що перекриваються, і намагаєтесь змінити кольоровий фільтр одного з них, це впливає на інше зображення, яке перекриває його!
Джонатан

Відповіді:


321

Ось чудова стаття з ілюстраціями інженера Google:

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

PorterDuff описується як спосіб комбінування зображень так, ніби вони "шматки картону неправильної форми", накладені один на одного, а також як схема змішування деталей, що перекриваються.

Стандартним способом складання зображень для Android є PorterDuff.Mode.SRC_OVER , який прирівнюється до малювання вихідного зображення / кольору над цільовим зображенням. Іншими словами, він робить те, що ви очікували, і малює вихідне зображення (те, що ви малюєте) зверху на цільове зображення (полотно) з цільовим зображенням, яке відображається до ступеня, визначеної альфою вихідного зображення.

Інфографіка PorterDuff зі статті

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

  • Sa Джерело альфа
  • Sc Колір джерела
  • Da Альфа призначення
  • Колір постійного струму

Де альфа - значення [0..1], а колір замінюється один раз на канал (тому використовуйте формулу один раз для кожного червоного, зеленого та синього)

Отримані значення задаються у вигляді пари в квадратних дужках наступним чином.

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

Де alpha-valueі color-valueє формули для генерації результуючого альфа-шанеля та кожної кольорової шанелі відповідно.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.