
Photoshop: от простого к сложному
Часть 49. Создание фильтров для Photoshop
Зачем ограничивать себя существующим набором фильтров, когда
можно создать собственные? Мы расскажем, как сделать девять новых фильтров с помощью
модуля Filter Factory.
Создание собственных фильтров — вовсе не такое сложное дело, как может показаться.
На этот раз мы поработаем с модулем Filter Factory, который находится на установочном
диске Photoshop. Стряхните с него пыль, загрузите и перетащите FFactory (из
папки Goodies/Optional Plug-Ins/FFactory) в свою папку Plug-Ins. Не забудьте
также примеры и документацию.
Модулю Filter Factory достаточно столько познаний в математике, сколько вы готовы
предложить сами. Если вам нужен простой фильтр, достаточно будет элементарных
функций удаления цветового канала, смещения или усреднения пикселов изображения-источника.
Но окунувшись глубже в программирование, вы сможете создать именно такой фильтр,
какой вам необходим.
Возможно, Filter Factory не способен создавать таких чудес, как KPT, но если
вас не удовлетворяет стандартный фильтр Emboss или вы хотите чего-то нового,
то этот модуль окажется весьма полезным. Работает он только в режиме RGB, поэтому
градации серого, индексированные цвета, CMYK, 16-битовый режим будут недоступными.
1. Цветовой градиент
В первую очередь посредством манипуляций цветовыми каналами и изменения значений пикселов RGB мы создадим фильтр цветового эффекта...
- Чтобы изменить текущие значения, задайте каждому каналу свой регулятор:
r превращается в r + регулятор 0, g — в g + регулятор 1, а b — в b + регулятор
2. Для ограничения диапазона, а также для изменения цвета на противоположный
используйте val(). Для повышения значений от 0 используйте ctl(n).
- Для осветления изображения добавьте дополнительную величину — можно использовать
максимум r/g/b или, наоборот, минимум (r,min(g,b)), среднее rgb или радиальное
увеличение + m.
- Градиент применен для подавления интенсивности цветового смещения. Для
вертикального градиента используйте у, а для горизонтального — х или варианты
вроде х+у или х+х%10, образующие разные типы градиентов. Для радиального градиента
вместо х и у используются d и m.
![]() |
![]() |
2. Тиснение
Filter Factory позволит вам создать собственный эффект тиснения...
- Для получения эффекта тиснения нам понадобится оригинальное изображение-источник
и то же изображение, но слегка смещенное. Настоящее тиснение должно быть более
аккуратным, а здесь это выглядит довольно грубо. Назначьте компонентам х и у источника
регуляторы и произведите вычитание из оригинала.
- С изображением-источником, а также для инверсии или усреднения пикселов
источника можно использовать функцию Mix. В данном случае разные регуляторы
создают различные варианты смешения цветов RGB, образуя разнообразные эффекты
тиснения.
- Для создания тиснения с преобладанием серого здесь применено усреднение
пикселов. Среди других вариантов — инвертированное тиснение, тиснение со случайным
смешением, тиснение с регулируемой глубиной за счет изменения параметров пикселов
или угла освещения.
![]() |
![]() |
3. Рельефное стекло
Следующий фильтр дает такой эффект, будто изображение находится за рельефным стеклом...
- Очень полезным для включения в любые фильтры является оператор %. С помощью
функции src источник сдвигается по осям х и у. Это означает, что смещение
в пределах всего изображения повторяется с циклом от 0 до 20, образуя плиточный,
мозаичный эффект или эффект текстурированного стекла.
- Комбинация оригинального изображения-источника с мозаичной версией образует
эффект рельефных или размазанных блоков. Здесь использованы седьмой и восьмой
регуляторы (остальные для следующего шага). Для программирования восьмого
регулятора используйте ctl(7), так как регуляторы начинаются с 0.
- Вместо задания одного и того же действия для всех каналов здесь использованы
регуляторы 0 и 1 для смещения красного канала по осям х и у, регуляторы 2
и 3 — для зеленого канала, а 4 и 5 — для синего. Кстати, величина 20 абсолютно
произвольная и в зависимости от размера изображения может быть заменена, например,
на 100. Для создания радиального или искривленного варианта стекла используйте
в качестве множителя /?factor/ Х (ширина изображения) или d и m.
![]() |
![]() |
4. Серое изображение
Этот фильтр выполняет усреднение цвета пикселов, создавая эффект градаций серого...
- Чтобы сделать изображение серым, необходимо усреднить каналы RGB. Выполнить
это можно по-разному. В данном случае к rgb применен дополнительный множитель
/?factor/. Если вы используете r+g+b, разделите это на 3, но здесь лучше воспользоваться
регулятором, чтобы можно было варьировать яркость.
- Помимо использования оригинального изображения для придания результату
зернистости или элемента случайности, каналы источника дополнены функцией
rnd(). Диапазон случайности управляется восьмым регулятором (регулятор 7)
и вводится как ctl(7).
- Чтобы интенсивность изменения цвета была не так заметна, к изображению
применяется градиент. Для вертикального градиента используйте у, а для горизонтального —
х. Или варианты вроде х+у или х+х%10, образующие разные типы градиентов. Для
радиального градиента вместо х и у используются d и m.
![]() |
![]() |
5. Линии
Следующий фильтр сродни оп-арту: прямые линии, клетки, яркие текстуры...
- Линии создаются с помощью функции sin(). Для создания вертикальных линий
модифицируйте функцию sin(), определив расстояние пиксела слева (х), и воспользуйтесь
регулятором. Чтобы увеличить число линий, повысьте значение, задаваемое первым
регулятором.
- Для создания горизонтальных линий воспользуйтесь осью у. Если вычесть sin(x*ctl(0))
из sin(y*ctl(1)), получатся размытые пятна. Для образования эффекта клеток
перемножьте эти значения. Чтобы получить диагональные линии, используйте х
и у совместно, например x-y или X-x-y.
- Чтобы создать цветные линии или клетки, задайте разные значения ctl() для
х и у в каждом канале. Это можно распространить на эффекты диагонали, деформации,
радиальные и т.д.
![]() |
![]() |
6. Негатив/инверсия
В качестве следующего эффекта мы инвертируем изображение и смешаем его с оригиналом...
- Для создания самой простой инверсии задайте для каждого канала 255-с. Это
можно распространить на тени, средние тона и т.д.
- Значение 255 имеет довольно ограниченный диапазон. Возможности регулятора
будут гораздо шире. Замените 255 на ctl(0) или val(0,125,512). Тогда исходные
пикселы можно будет смешивать с инвертированными и для каждого канала использовать
свой регулятор, что дает более широкий простор для управления цветом.
- Кроме того, одним регулятором можно повышать интенсивность исходных пикселов,
что еще больше расширяет творческие возможности нашего негативного фильтра.
К сожалению, Filter Factory ограничивает нас лишь восемью регуляторами.
![]() |
![]() |
7. Круги
Седьмой фильтр генерирует гипнотические кольца и круги...
- Начнем с виньетки. Здесь m — расстояние от центра, а М — наибольшая протяженность.
- Так же как и в фильтре с линиями, к M-m добавляется sin(ctl(0)). К каждому
каналу применяются разные регуляторы, которые генерируют кольца разных цветов.
Для получения эффекта концентрических окружностей используйте d, а для создания
причудливых радиальных эффектов с искривлениями — комбинации d и m.
- Теперь вместо m используйте координаты х и у. Центр изображения представлен
как X/2, Y/2, расстояние до центра вы можете подобрать сами. Укажите смещение
центра и повторите, используя другой центр. В результате получится гипнотическая
интерференционная структура.
![]() |
![]() |
8. Смещение
Этот фильтр выполняет смещение изображения...
- Чтобы сместить изображение на пять пикселов вправо, воспользуйтесь выражением
src(x+5,y,z). Для смещения изображения на ‘n’ пикселов вправо воспользуйтесь
val(0,-n,n) или ctl(0). Другие варианты включают случайное смещение с помощью
rnd() или модальное смещение с помощью %.
- Проверьте выход за пределы изображения. Если все ушло далеко вправо, вычтите
ширину изображения. Если картинка зашла за левый край, добавьте ширину изображения.
- Смещение может быть либо одинаковым для всех каналов, либо красный может
сдвигаться влево, зеленый вправо и т.д. Назначьте каждому каналу свой регулятор.
Чтобы не допустить такого на печати, фирмы тратят большие деньги, но для имитации
трехмерных эффектов это очень даже неплохо...
![]() |
![]() |
9. Эффект порога
Наш последний фильтр сочетает в себе негатив, порог и градации серого...
- Возьмите на вооружение оператор >. Чтобы проверить, насколько значение
текущего пиксела больше величины, заданной регулятором, воспользуйтесь c>ctl(0).
Так же как в С и С++, разделите результат сравнения истинного и ложного на
? /???/, а для проверки в обратном направлении воспользуйтесь <. Для различных
битовых операций и психоделических эффектов полезны также операторы &&,
||, &, | и ^.
- Среднее значение всех каналов сравнивается с величиной, заданной регулятором
порога. Если результат истинный, применяется среднее значение, если ложный
— значение берется как величина пиксела данного канала.
- Если пороговый тест пройден, новым цветом для данного канала становится
негатив средних значений RGB; в противном случае используется значение исходного
пиксела плюс значение регулятора. Этот фильтр, как и многие другие ему подобные,
может давать разные результаты при малейшем изменении значения.
КомпьюАрт 1'2002