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

Материал из Онлайн справочника
Версия от 19:02, 19 сентября 2023; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


filter() [1]

Обозначение

filter()

Описание

Накладывает на дисплейное окно фильтр – либо предварительно заданный фильтр, либо кастомный шейдер. При использовании шейдера filter() работает быстрее. Чтобы использовать шейдер, в блоке size() необходимо задать визуализатор P2D или P3D.

Вот список предварительно заданных фильтров:

  • THRESHOLD – Делает пиксели изображения черными или белыми в зависимости от того, преодолевают ли они пороговое значение, заданное в параметре level. Значение в нем должно быть в диапазоне от «0.0» (черный) до «1.0» (белый). Если параметра level указано не будет, будет использовано пороговое значение по умолчанию – «0.5».
  • GRAY – Конвертирует все цвета изображения в эквивалентные монохромные цвета. Второй параметр не используется.
  • OPAQUE – Делает альфа-канал полностью непрозрачным. Второй параметр не используется.
  • INVERT – Инвертирует значение каждого пикселя. Второй параметр не используется.
  • POSTERIZE – Ограничивает каждый канал изображения на количество цветов, заданных во втором параметре level. В нем можно указать значение в диапазоне 2-255, но результат наиболее заметен, если это значение будет небольшим.
  • BLUR – Выполняет размытие по Гауссу. Во втором параметре level задается степень размытия. Если второго параметра указано не будет, результат будет эквивалентен гауссову размытию с радиусом 1. Чем больше значение в параметре level, тем больше размытие.
  • ERODE – Ослабляет светлые участки. Второй параметр не используется.
  • DILATE – Усиливает светлые участки. Второй параметр не используется.

Синтаксис

filter(shader)
filter(kind)
filter(kind, level)

Параметры

shader – шейдер, который нужно применить. Тип данных – объект PShader
kind – один из предварительно заданных фильтров. Возможные варианты – THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE или DILATE. Тип данных – int
level – значение, уникальное для каждого фильтра (см. выше). Тип данных – float

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

void

Пример

№1


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(THRESHOLD);

№2


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(GRAY);

№3


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(INVERT);

№4


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(POSTERIZE, 4);

№5


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(BLUR, 6);

№6


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(ERODE);

№7


PImage img;
img = loadImage("apples.jpg");
image(img, 0, 0);
filter(DILATE);

№8


PShader blur;
PImage img;

void setup() {
  size(100, 100, P2D);
  blur = loadShader("blur.glsl");
  img = loadImage("apples.jpg");
  image(img, 0, 0); 
}

void draw() {
  filter(blur); // делает размытие с каждым вызовом draw()
}

См.также

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