Processing:Справочник языка Processing/PImage/blend()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


blend() [1]

Класс

PImage

Обозначение

blend()

Описание

Накладывает фрагмент пикселей на изображение, заданное в параметре pimg. В копиях накладываемых изображений хранится полная информация альфа-канала. Кроме того, метод blend() поддерживает разные режимы наложения пикселей исходного изображения (A) на пиксели «посадочной площадки» (B):

  • BLEND – линейная интерполяция цветов: C = A*коэффициент + B
  • ADD – аддитивное наложение с отсечением белого: C = min(A*коэффициент + B, 255)
  • SUBTRACT – субтрактивное наложение с отсечением черного: C = max(B - A*коэффициент, 0)
  • DARKEST – отображаются только самые темные цвета: C = min(A*коэффициент, B)
  • LIGHTEST – отображаются только самые светлые цвета: C = max(A*коэффициент, B)
  • DIFFERENCE – вычитает цвета из «посадочной площадки»
  • EXCLUSION – то же самое, что и DIFFERENCE, только в меньшей степени
  • MULTIPLY – умножает цвета; результат всегда будет темнее
  • SCREEN – противоположность MULTIPLY, использует инвертированные значения цветов
  • OVERLAY – комбинирует MULTIPLY и SCREEN; применяет MULTIPLY на темные участки, а SCREEN – на светлые участки
  • HARD_LIGHT – если выше 50% серого, используется SCREEN, а если ниже – MULTIPLY
  • SOFT_LIGHT – комбинирует DARKEST и LIGHTEST; работает аналогично OVERLAY, но не так жестко
  • DODGE – осветляет светлые цвета и усиливает контраст, игнорирует темные цвета; в Photoshop и Illustrator называется Color Dodge («Осветление основы»)
  • BURN – применяется к темным цветам, усиливает контраст, игнорирует светлые участки; в Photoshop и Illustrator называется Color Burn («Затемнение основы»)

Все режимы в качестве коэффициента наложения используют альфа-информацию (самый старший бит) накладываемого изображения. Если «посадочная площадка» и накладываемое изображения разных размеров, размер накладываемого изображения будет автоматически изменен, чтобы соответствовать размеру «посадочной площадки». Если параметра src указано не будет, в качестве накладываемого изображения будет использовано дисплейное окно.

В Processing версии 0149 этот метод игнорирует настройки imageMode().

Синтаксис

pimg.blend(sx, sy, sw, sh, dx, dy, dw, dh, mode)
pimg.blend(src, sx, sy, sw, sh, dx, dy, dw, dh, mode)

Параметры

pimg  любой объект типа PImage. Тип данных  PImage
src   накладываемое изображение. Тип данных  PImage
sx    координата X левого верхнего угла накладываемого изображения. Тип данных  int
sy    координата Y левого верхнего угла накладываемого изображения. Тип данных  int
sw    ширина накладываемого изображения. Тип данных  int
sh    высота накладываемого изображения. Тип данных  int
dx    координата X левого верхнего угла «посадочной площадки». Тип данных  int
dy    координата Y левого верхнего угла «посадочной площадки». Тип данных  int
dw    ширина «посадочной площадки». Тип данных  int
dh    высота «посадочной площадки». Тип данных  int
mode  режим наложения; возможные варианты  BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN. Тип данных  int

Возвращаемое значение

void

Пример

№1


PImage mountains = loadImage("rockies.jpg");
PImage bricks = loadImage("bricks.jpg"); 
mountains.blend(bricks, 0, 0, 33, 100, 67, 0, 33, 100, ADD); 
image(mountains, 0, 0);
image(bricks, 0, 0);

№2


PImage mountains = loadImage("rockies.jpg");
PImage bricks = loadImage("bricks.jpg"); 
mountains.blend(bricks, 0, 0, 33, 100, 67, 0, 33, 100, SUBTRACT); 
image(mountains, 0, 0);
image(bricks, 0, 0);

№3


PImage mountains = loadImage("rockies.jpg");
PImage bricks = loadImage("bricks.jpg"); 
mountains.blend(bricks, 0, 0, 33, 100, 67, 0, 33, 100, DARKEST); 
image(mountains, 0, 0);
image(bricks, 0, 0);

№4


PImage mountains = loadImage("rockies.jpg");
PImage bricks = loadImage("bricks.jpg"); 
mountains.blend(bricks, 0, 0, 33, 100, 67, 0, 33, 100, LIGHTEST); 
image(mountains, 0, 0);
image(bricks, 0, 0);

См.также

Внешние ссылки