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