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

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


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



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()
}

См.также

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