Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2432 статей для сайта.

Контакты:

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


Ambox content.png Черновик


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

Processing filter 0 threshold.png


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

№2

Processing filter 1 gray.png


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

№3

Processing filter 2 invert.png


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

№4

Processing filter 3 posterize.png


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

№5

Processing filter 4 blur.png


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

№6

Processing filter 5 erode.png


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

№7

Processing filter 6 dilate.png


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

№8

Processing filter 4 blur.png


  1. PShader blur;
  2. PImage img;
  3.  
  4. void setup() {
  5.   size(100, 100, P2D);
  6.   blur = loadShader("blur.glsl");
  7.   img = loadImage("apples.jpg");
  8.   image(img, 0, 0);
  9. }
  10.  
  11. void draw() {
  12.   filter(blur); // делает размытие с каждым вызовом draw()
  13. }

См.также

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

  1. processing.org - filter()