Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11656
Последний выпуск: 19.06.2015

Плагин к "Фотошопу", и как его сделать

 

What a serpent fussing in the window, keeping a plugin behind his back:
Вон он, змей, в окне маячит, за спиною штепсель прячет:
В. Высоцкий

 

Феномен невероятной популярности графического редактора фирмы Adobeна просторах бывшего СССР еще предстоит исследовать психологам, социологам, лингвистам и другим представителям неточных наук. Являясь непревзойденным инструментом для профессиональной работы с растровыми изображениями, Photoshop сумел покорить миллионы винчестеров самой любознательной страны мира. Его можно обнаружить на специализированных графических станциях, офисных компьютерах, в ноутбуках менеджеров, домашних игровых "компах", а также на каждом четвертом сборнике пиратских программ. По-видимому, не последнюю роль в столь широком признании играет наличие большего количества так называемых плагинов, многократно усиливающих развлекательную составляющую творчества.

Очевидно, что некоторые дополнительные инструменты для работы с изображениями занимают достойные места в арсенале специалистов, и всё же, их основными потребителями являются как раз люди, чья профессия не имеет прямого отношения к работе с компьютерной графикой. Абсолютное большинство так называемых "плагиноманов" - это люди, коротающие вечера за оформлением семейных фотоальбомов и дизайном домашних страничек. Не секрет, что настоящие профессионалы предпочитают пользоваться в работе исключительно базовым набором фильтров и добиваться нужных эффектов при помощи комбинирования классических приемов редактирования. Для людей зарабатывающих не последнее значение имеет также степень легитимности используемых инструментов, а цена иных плагинов сравнима с ценой самогоPhotoshop. Тем не менее, в последних версиях своего графического редактора фирмаAdobeпродолжает тенденцию на облегчение жизни именно неискушенного пользователя, чем периодически вызывает раздражение консервативно настроенной части профессионального сообщества.

Adobe Photoshop поддерживает не только встроенные фильтры, но и фильтры других производителей. Для этого их надо установить, и они будут появляться в меню вместе со встроенными фильтрами.

Photoshop для "Чайников"

Возможность подключения дополнительных внешних модулей явилась одной из наиболее продуктивных затей в истории прикладного программирования. Мощность базового приложения (хоста) наращивается за счет работы десятков, а то и сотен сторонних программистов, которые чаще всего тоже в накладе не остаются.

Photoshop- явный фаворит у желающих "поштепселить". Количество написанных для него фильтров по разным оценкам перевалило то ли за две, то ли за четыре тысячи. Не все плагины есть фильтры. Существуют также экспортно-импортные модули, модули автоматизации, форматирования и пр. Но именно фильтры являются самым распространенным типом и, безусловно, наиболее интересным.. Если вы никогда раньше не программировали либо ограничивались исключительно Бейсиком, не расстраивайтесь, упомянутое изобилие создано как раз вашими коллегами. Существующие на сегодняшний день программы-генераторы позволяют писать достаточные для многих случаев фильтры на основе несложного языка, освоить который можно за пару дней, если вы уже чему-то учились когда-нибудь.

ВыпущенныйAdobe Systemsв 1994 году,Filter Factory(далееFF) - самый первый и наиболее известный генератор фильтров. Именно этой бесплатной программе мы обязаны появлением несметного количества "штепселей" с похожими, как близнецы, интерфейсами в стиле незабвеннойWindows 3.1. Характерными признаками приготовленных с помощьюFFфильтров являются неочевидная логика работы и сомнительное качество обработанного изображения. Причиной тому являются жесткие ограничения на размер исходного кода, убогий конструктор интерфейса и отсутствие возможности оперировать типами данных с плавающей точкой.

Тем не менее, при несложной работе с цветом, редактировании прозрачности, наложении простых текстур, тенюшек и других нехитрых штуковинFFпоказывает вполне приемлемые результаты. Попытки построения более замысловатых эффектов, связанных с деформациями, фигурными фасками и т.п. приводят к появлению ступенчатых границ, выпаданий, артефактов и прочих "друзей" целочисленной арифметики. Несмотря на перечисленные нюансы среди унылого однообразия попадаются настоящие произведения искусства, способные украсить любую коллекцию фильтров.

СамаFFреализована также в виде плагина и вместе с образцами готовых фильтров и документацией занимает менее четырёхсот килобайт. Существует в версиях дляWindowsиMac, а также в модификации дляAdobe Premiere. Построенный с её помощью фильтр имеет фиксированный размер и включает в себя исходный программный код, который компилируется непосредственно перед выполнением. Как и в случае с другими программными продуктами от технологииopen source, мы неизбежно получаем большое количество похожих и постоянно мутирующих реализаций одних и тех же алгоритмов, к тому же совершенно бесплатных. Фильтры отFFимеют высокую степень идентичности на уровне двоичного кода, что благотворно сказывается на распространении через Интернет. В один "сплошной" архив (напримерRAR) размером60kтаких фильтров влезает штук сто.

Встроенный языкFFнапоминает усеченный

C. Операторы цикла отсутствуют. Из математики доступны квадратный корень, тригонометрические функции, конвертация из

RGB в YUV, а также относительно "навороченный" вычислитель свертки массива из девяти пикселей. Имеются в наличии простенький генератор случайных чисел, а также набор функций для работы в полярных координатах. В Сети можно отыскать достаточное количество всевозможных "разъяснялок" с примерами и комментариями. Правда, всё на английском.
  К сожалению, на настоящий моментFF сильно обветшала. Для программного продукта пять лет без обновлений - срок экстремальный. Хотя если идея написать фильтр посетила вас впервые, и секрета из его алгоритма вы делать не собираетесь, Filter Factory до сих пор остаётся неплохим выбором.

Здесь стоит упомянуть о вспомогательных утилитах, облегчающих складирование и управление большим количеством фильтров. Поскольку реализация универсального алгоритма обработки изображения при использованииFFпредставляет большую проблему из-за катастрофической нехватки ресурсов, большинство авторов идут по пути создания не одного, а нескольких узкоспециализированных фильтров, коих количество в одной группе эффектов может достигать нескольких десятков. Для увлеченного пользователя такое изобилие неизбежно приводит к проблемам в работе.

Программы-менеджеры позволяют хранить тысячиFF'ских фильтров в одном архивном файле, разбивать по разделам, осуществлять поиск, снабжать комментариями, редактировать исходный код. Существует также функция предпросмотра. Самые известные из них

Plugin Commander от фирмы PiCo и Plugin Manager от I.C.NET Software. Бесплатные версии этих программ работают только с фильтрами от Filter Factory, шароварные же способны управляться также с коммерческими плагинами (и не только с фильтрами).

Filters Unlimitedфирмы I.C.NET Software- самый удачный менеджер фильтров FF. Реализован в виде метаплагина, то есть в меню "Filter" появляется только одна строчка, которая и является ссылкой на всю коллекцию. Поставляется со ста пятьюдесятью готовыми фильтрами, имеет удобную функцию предпросмотра, создаваемые пресеты элегантно маркируются небольшими скриншотами. Поддерживает собственные расширения языка Filter Factory, среди которых - функции коррекции гаммы, текстурирования, работы с градиентными заливками, усовершенствованные вычислитель свёртки и генератор случайных чисел. Увеличен размер доступной программисту оперативной памяти. Из недостатков следует отметить немасштабируемую превьюшку, ну и конечно цену в 35 долларов. Хотя сопроводительная документация подробностью не отличается, эту программу можно с успехом использовать в целях обучения, измываясь над исходниками полутора сотен прилагаемых фильтров.

Filter Formulaот компании ATS- совместимый с FFпо исходному коду генератор плагинов с расширенными возможностями. Выпускается в двух вариантах: Small Editionи Professional. Облегчённая версия не позволяет сделать автономный фильтр (файл с расширением 8bf) и работает только с исходным текстом.

Программа производит приятное впечатление. Максимальная длина кода вчетверо выше, чем уFF, функциональные возможности несравненно шире, в том числе по дизайну интерфейса. Профессиональная версия способна компоновать в один файл сразу несколько фильтров. Поиски в Интернете декомпилятора для созданныхFilter FormulaProfessionalплагинов успехом не увенчались, что создаёт условия для их распространения на коммерческой основе.

Следует упомянуть о дополнительном сервисе, предлагаемом на сайтеATS: за 50 долларов можно заказать готовый фильтр, основанный на придуманном вами алгоритме.

Незарегистрированная версия имеет пакостное ограничение на размер обрабатываемого изображения, работает в течение 30 дней, а потом начинает вымогать деньги.

К сожалению, рекомендовать эту программу кому бы то ни было довольно сложно. Имея явные преимущества перед бесплатнойFilter Factory,Filter Formulaуступает по функциональности более совершенным продуктам, к тому же превосходя их по цене.

Filter Meister - новый суперамбициозный проект, находящийся к моменту написания этой статьи в стадии бета-тестирования. Незарегистрированная версия не позволяет сделать автономный фильтр, но других ограничений не имеет. Декларируется обратная совместимость с Filter Factory. При дизайне интерфейсов есть возможность подстилать собственные обои и использовать управляющие элементы из API Windows(линейки прогрессии, лист-боксы, кнопки и т.п.).

Встроенный компилятор обеспечивает вызовы некоторых функций из стандартных библиотекC(<stdio>,<math>и пр.), ряд обращений кWin32APIи поддерживает типы данных с плавающей точкой! Это означает, что теперь есть возможность использовать алгоритмы билинейной фильтрации (при масштабировании и деформациях) и краевого антиалайзинга. Обработка изображения может осуществляться как целиком, так и по частям, снижая, таким образом, не слишком актуальные в настоящее время требования к объёму оперативной памяти и повышая производительность при работе на многопроцессорных платформах. Структурные типы данных, массивы и указатели не поддерживаются. Заявлена возможность работы в цветовых модахCMYKиLab, хотя лично мне такие фильтры не попадались.

Запланированный к выпуску вариантProfessionalбудет обладать кучей профессиональных качеств, как то: наличие визуального конструктора интерфейсов, возможность ставить свои копирайты, прилинковывать собственные библиотеки и шифровать код стойким алгоритмом для зашиты от последующего восстановления!:-)

Из недоработок свойственных версиям бета, следует упомянуть некоторые проблемы с утечками памяти, которые могут нарушать нормальную работу Photoshopи лечатся его перезагрузкой. Хотелось бы также поворчать по поводу размерчика скомпонованного фильтра (от ста килобайт плюс размер прожорливой bmp'шки с обоями) и неудобной работы с ползунками на вычислительноёмких алгоритмах.

РекомендоватьFilter Meisterможно людям, обладающим некоторым опытом в программировании наC. Качество документации выше всяких похвал. Даже если вы остановите свой выбор на другом генераторе фильтров, обязательно ознакомьтесь с прилагаемым учебником по теории обработки изображений.

Сравнительные характеристики программ-генераторов фильтров (Filter Compilers).

Photoshop поддерживает девять типов подключаемых модулей.

  • Import modules(модули импорта изображений). Файлы с расширением8ba. Используются для связи со сканнерами, устройствами захвата кадров, ввода изображений в неподдерживаемых файловых форматах. Доступны из подменю "Import".
  • Export modules(модули экспорта). Файлы с расширением8be. Используются для сохранения изображения в неподдерживаемых файловых форматах, а также для вывода на нестандартные внешние устройства. Доступны из подменю "Export".
  • Format modules(преобразование формата изображения). Файлы с расширением8bi. Похожи на экспортно-импортные модули и используются для работы с нестандартными файловыми форматами. Доступны из подменю "Open" и "Save As".
  • Filter modules(модули фильтров). Файлы с расширением 8bf. Обрабатывают существующее изображение или его часть. Эти модули доступны из меню "Filter". Большинство пользователей знакомо исключительно с этим типом плагинов.
  • Parser modules. Файлы с расширением8by. То же самое, что и модули преобразования, только предназначенные для работы с векторными форматами данных (Adobe Illustrator,PageMaker:). Спецификации этого типа плагинов закрыты для публичного доступа.
  • Automation modules(модули автоматизации). Файлы с расширением8li. Осуществляют доступ к сценариямAdobe Photoshop. Доступны из подменю "Automate" или "Help".
  • Extension modules(модули расширения). Файлы с расширением8bx. Применяются для встраивания дополнительных функций в интерфейсAdobe Photoshop, а также для инициализации некоторых внешних устройств. Своего интерфейса, как правило, не имеют. Спецификации этого типа плагинов закрыты для публичного доступа.
  • Selection modules(модули выделения). Файлы с расширением8bs. Доступны из меню "Selection". Применяются для выделения части растрового изображения (selection), либо для работы с векторными данными (paths).
  • Color Picker modules. Файлы с расширением8bc. Позволяют подключить альтернативный "color picker" вдобавок к двум существующим: отPhotoshopи отWindows. Исходный текст такого модуля включен вAdobe Photoshop SDKв качестве одного из примеров.

Фильтр Adobe Photoshopпредставляет собой файл с расширением 8bf, который на поверку оказывается обычной dll. При запуске Photoshopпросматривает директорию с плагинами на предмет наличия 8bf-файлов и помещает их имена в меню "Filter". Специфическая информация о плагине (категория, имя, поддерживаемые режимы (RGB, CMYK:), номер версии) находится в специальном двоичном ресурсе с гордым названием "PIPL" (Plug-In Property List). Именно наличие этого "пипла" и отличает собственно фильтры от других dll'ок. Если в качестве эксперимента сменить какому-либо файлу расширение с 8bfна dll, появится возможность рассмотреть его в одном из редакторов ресурсов Windows(доработать интерфейс, русифицировать, поменять копирайты, вставить троян и т.п.). Автор этой статьи, ясное дело, ни к чему такому не призывает, но шутки шутками, а натравить антивирус на скаченный по сети фильтр не помешает, поскольку в 8bf-файлах всякая дрянь может гнездиться с не меньшим комфортом, чем в exe'шках.

Если вы в детстве интересовались языком С++и немного программировали для Windows 95, то можете попробовать написать настоящий фильтр с любимым интерфейсом и ничем не ограниченными (воображение не в счёт) возможностями. Вам понадобится Microsoft Visual C++ 5или более новая версия, а также комплект разработчика Adobe Photoshop SDKhttp://partners.adobe.com/asn/developer/gapsdk/PhotoshopSDK.html (~7Mb).

Работу с оригинальной документацией, да ещё на чужом языке редко удается назвать простой, но случай сAdobe SDKотличается особой запущенностью. Несмотря на то, что прилагаемые примеры компилируются с первого раза и без ошибок, попытки разобраться в их работе оборачиваются головной болью даже для опытного программиста. Во-первых, исходный код - двухплатформенный (Mac OSиWin32). Во-вторых - написан на простомC, без намёков на объектно-ориентированную модель. В-третьих, наблюдается явная болезнь развития, то есть за девять лет код ни разу не переписывался заново, а только обрастал добавлениями, переопределениями, вложенными конструкциями и прочим хламом. В-четвертых, используется неоправданно большое количество обращений к плоходокументированным функциямAdobe Photoshop API, не самым удачным образом дублирующим стандартные вызовыWin32 API. В результате адобовскийSDKзаслуженно пользуется скверной репутацией среди программистов всех уровней.

Но, как часто бывает, не всё так грустно как кажется. Исходный текст некоего тривиального фильтра, который можно скачать с http://redfield.webzone.ru/fish.zip, содержит не более ста строчек кода и компилируется в файл proba.8bf размером 4.5k . Пример даёт представление о том, как происходит взаимодействие плагина с Photoshop'ом, и, что более важно, демонстрирует несложность этого механизма. Дальнейшая модернизация кода может проводиться с минимальными обращениями к оригинальной документации с использованием привычных библиотек и наработанных приёмов программирования.

Наш первый фильтр не имеет превьюшки и настроек, не отличается утонченностью интерфейса и выполняет всего одну операцию, но вы получаете возможность пользоваться профессиональным средством разработки программ со всеми вытекающими вытеканиями в виде производительности, компактности, гибкости, отсутствия необходимости приобретать дополнительный софт и изучать суррогатные языки программирования.

Авторам, собравшимся распространять свои фильтры через Интернет, необходимо учитывать, что большинство их потенциальных потребителей знакомы сPhotoshopтолько заочно. И наших соотечественников среди них совсем не много из-за невысокой доли российского Интернета в Интернете нероссийском, и привычек искать программное обеспечение не в Сети, а сами понимаете где.

В среднем (повторюсь, в среднем) квалификация зарубежного пользователя несколько ниже нашего отечественного, и для работы с профессиональным графическим пакетом её не всегда достаточно. Почётного упоминания заслуживает и традиция отдавать за программы свои кровные (PS 5.5, кстати, стоит 630 условных единиц). Заинтересовать же их профессионала пользоваться вашим фильтром дело не простое, поскольку конкурировать придётся с высокобюджетными коммерческими продуктами, заплатить за которые ему вполне по зарплате. К тому же настоящие профи, как уже отмечалось, часто работают одними "руками" и разными там самопальными плагинами брезгают.

Среди графических редакторов по количеству пользователей с большим отрывом лидирует Paint Shop Proот фирмы Jasc. Относительно недорогой, достаточно мощный и обладающий массой привлекательных качеств. В нашей стране особой известности не получил в связи с отсутствием нормально сделанных русскоязычных версий и всеобщим признанием продуктовAdobe. Существует еще пяток приложений, на совместимость с которыми плагин желательно протестировать, если не преследуется цель заполнять свой почтовый ящик воплями огорченных людей. Не стоит расстраиваться из-за отсутствия версии вашего фильтра для "Макинтошей", которых, как бы ни надрывалась Apple, всё-таки очень мало, даже меньше, чем кажется. В переписке, однако, следует соблюдать аккуратность, так как поклонники этой платформы очень ранимые люди.

Любопытно, что заметное количество "дизайнеров" составляют общительные дамы почтенного возраста, проживающие где-нибудь в англоязычном захолустье.Если получите письмо от какой-нибудь Дианы из Парамамонт-Бич, учтите, что, скорее всего, ей под шестьдесят и она регулярно обновляет фотографии внуков на своей домашней страничке. Тем не менее, рисуют старушки порой весьма достойно, и зарегистрировать шароварку для них дело вполне обычное, поскольку про "Асталависту" не слышали, и с деньгами на карточках ,в нашем понимании, полный порядок. Так что начинайте с какого-нибудь синтезатора кружевных тряпочек или компилятора кремовых розочек: Билгейцом не станете, но успех гарантирован конкретный.

В заключение несколько ссылок:

http://perso.club-internet.fr/gpl/  - наиболее полная коллекция фильтров к Photoshop с классификацией, описаниями, скриншотами и рейтингами. Отыскать здесь необходимый плагин бывает проще, чем на CD с их сборником. Обидно, что сайт перестал обновляться. Язык английский и французский.

http://www.netins.net/showcase/wolf359/adobepc.htm  - лучший сайт по тематике, связанной сPhotoshop. Язык английский.

(c) Краснопольский Евгений, август 2000 redfield@mtu-net.ru.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
9 декабря 2005, 12:55:07
Спасибо за подробное описание. Мне очень понравилось. Это круто. Спасибо. Спасибо. Спасибо.
2.
Аноним
+0 / -1
Мне нравитсяМне не нравится
31 марта 2005, 13:45:50
Intersno!!!
3.
Аноним
Мне нравитсяМне не нравится
15 декабря 2004, 15:33:58
Очень интересная и познавательная статья.

Непонятен только наезд на целочисленку.
По моим данным единственное "достоинство"
плавучки - это замедление всего в 4-8 раз
по сравнению с целочисленной реализацией.
Плавучка полезна только в гомеопатических дозах.

И не вижу никакой связи между плавучкой
и всякими трилинейными фильтрациями.

Вообще не стоит путать
разработку мат. модели на естественном языке
(тут м.б. одна плавучка)
с её же реализацией в коде
(где всё может измениться).

Лучше всего когда это делают разные люди не мешая друг другу.
3.1.
86K
03 октября 2012 года
санек_морозов
0 / / 03.10.2012
Мне нравитсяМне не нравится
3 октября 2012, 21:19:27
Согласен с вами
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог