Встраиваемые программные модули PhotoShop

advertisement
Встраиваемые модули (plug-in modules) отдельные программные библиотеки,
расширяющие стандартную
функциональность редактора.
Добавление новых и модификация имеющихся
плагинов не требует внесения изменений в
сам редактор. Это позволяет гибко
наращивать его функциональность.
Plug-in'ом может называться любое
приложение, для работы которого
необходим другой программный пакет,
называемый хост-приложением.
Модуль Adobe Photoshop в операционной
системе Windows представляет собой
динамически подсоединяемую библиотеку
(dll), с определенным расширением, со
специальным образом заданными
ресурсами и определенной функцией –
точкой входа.
Согласно идеологии Adobe, все
дополнительные модули, в зависимости от
их типа, применяют разные механизмы
связи со своим хост-приложением.
Некоторые из модулей , подобно сценариям
скриптовых языков, просто используют
вызовы DDE для управления объектами на
основном рабочем поле.
Так, например, реализованы все Add-ons для
Adobe PageMaker.
Для Photoshop также существуют модули,
построенные по таким принципам, но чаще
всего вместо прямых вызовов DDE они
обращаются к Action Engine и с его
помощью управляют объектами и
событиями внутри программы.
Другие же, являясь полноценными отдельными
приложениями, нуждаются в хостпрограммах лишь как в источнике
материала для обработки.
Как правило, такие plug-ins легко
подключаются к другим пакетам,
использующим стандартный интерфейс
обмена информацией, получивший
название PICA (Plug-in Component
Architecture).
Исходя из него любой модуль должен
включать в себя заголовок PiPL (Plug-in
Property List), в котором находится вся
информация о модуле, необходимая хостпакету для подключения.
Тип модуля, а также группа и название
определяются автоматически, при загрузке
приложения.
PiPL имеет достаточно сложную,
расширяемую структуру.
Он организован в виде списка свойств
модуля.
Общими для всех типов модулей являются
несколько свойств, включая:
PIKindProperty, задающее тип модуля;
PIVersionProperty, задающее версию модуля,
SupportedModes, задающее какие модуль
поддерживает режимы изображения (image
modes);
EnableInfo, задающее при каких условия
пункт меню вызывающий модуль доступен
пользователю (способ задания этого
свойства подробно описан в документе
Cross-Application Plug-in Development
Resource Guide).
Все модули, используемые PhotoShop,
подразделяются на восемь групп:
Color Picker (расширение .8BC) представляет
собой палитру выбора цвета, которая
вызывается всякий раз при нажатии на
пиктограмму Foreground или Background
color. В стандартной конфигурации
доступны только два вида Color Picker –
Photoshop и System (стандартная цветовая
палитра ОС).
Import *.8BA &Export *.8BE
Следующие две группы – фильтры Import
(расширение .8BA)
и Export (расширение .8BE). Обмен может
происходить не только с файлами, но и с
устройствами, как в случае с модулем
TWAIN.
Классическими образцами являются модули
открытия файлов Kodak PhotoCD и
экспорта в формат GIF.
Extensions *.8BX
Plug-ins типа Extensions (расширение .8BX)
встречаются еще реже, чем Color Picker.
Главной причиной тому является отсуствие
в SDK средств для их создания.
Формат plug-ins закрыт, и служат они
внутренним целям Photoshop –
инициализации устройств и др. Например,
plug-in FastCore.8BX отвечает за
использование команд MMX в работе
программы.
Группы фильтров Format File (расширение
.8BI) и Parser (расширение .8BY) расширяют
список форматов файлов, которые может
открывать Photoshop.
Format File обычно применяется для растровых
изображений; все расширения, которые
видны в окне Open- реализованы именно
таким образом.
Parser *.8BY
PhotoShop читает и некоторые векторные
форматы, для чего использует модулирастеризаторы Parser.
К сожалению, список таких форматов
пополняется очень медленно –
спецификация Parser plug-ins не
распространяется.
Selection plug-ins (расширение .8BS)
добавляют дополнительные функции
в меню Select.
Модули для автоматизации – Automation
(расширение .8LI)
Filter (расширение .8BF). Группу можно
разделить на несколько категорий.
Первая – фильтры корректирующие. К ним
относится модули, влияющая на цветовую
гамму изображения (только без ее
искажения!):
- позволяющая убирать с него артефакты,
- регулирующие яркость и контрастность
изображения,
- его резкость и пр.
Некоторые из них претендуют на
комплексность – анализируют изображение
и проводят ряд операций по его
улучшению.
Яркий пример: Intellihance Pro 4.0 компании
Extensis, который в соответствии с
заданными установками (подготовка для
печати, Web-страниц) выполняет
корректировку файла.
Другая категория – фильтры искажающие.
Сюда попадают практически все эффекты,
которые серьезно изменяют внешний вид
изображения или вносят в него свои
элементы.
И третья категория – образующие. Модули,
относящиеся к ней, совсем не используют
исходное изображение, поэтому для их
работы лучше создавать новый файл.
Примерами таких plug-ins могут служить
многочисленные фильтры, созданные с
помощью Filter Factory, – они образуют
геометрические или фрактальные узоры с
настраиваемой цветовой гаммой.
Установка модулей не требует никаких
специальных знаний. Достаточно лишь
помнить, что plug-ins различных групп
имеют разное расширение файла.
Все модули размещаются в каталоге Photoshop
в подкаталоге Plug-ins. Здесь несколько
директорий, в которых находятся модули
различного назначения.
Устанавливаемый plug-in следует положить в
нужный каталог (тот, в котором лежат
модули с соответствующим расширением)
и перезагрузить Photoshop. После этого
можно запустить установленный модуль из
меню File > Automate.
Ресурсы плагинов задаются в формате
Macintosh и переводятся в формат Windows
с помощью утилиты CNVTPIPL.EXE,
входящей в комплект Photoshop SDK.
Прототип функции - точки входа в плагин задается следующим образом:
void ENTRYPOINT (short selector,
void* pluginParam,
long* pluginData,
short* result);
Фактически, это единственная функция,
посредством которой редактор "общается" с
плагинами. Общение в обратную сторону
осуществляется с помощью функций
обратного вызова (callback-функций).
Download