Разработка плагина для Photoshop CS5
Необходимые инструменты Visual Studio 2008 PhotoShop CS5 PhotoShop CS5 SDK
Точка входа в плагин DLLExport MACPASCAL void PluginMain(const int16 selector, FilterRecordPtr filterRecord, intptr_t * data, int16 * result) Здесь selector – операция, которую должен выполнить плагин
filterRecord – структура, используемая для обмена информацией между плагином и Photoshop В ней определены: 1) Размеры обрабатываемого изображения 2) Разрешение изображения 3) Размеры изображения 4) Используемые цвета 5) Другая информация Описание параметров (продолжение)
data – ссылка на область памяти используемая плагином, представляет собой ссылку на область памяти где хранится изображение result – результат выполнения, возвращается код ошибки в случае возникновения Описание параметров (окончание)
Структура плагина (1) Порядок взаимодействия плагина: filterSelectorParameters – задание параметров по умолчанию filterSelectorPrepare – выделение необходимой памяти filterSelectorStart – проверка параметров, вызов диалога и подготовка к обработке изображения
filterSelectorContinue – обработка всех необходимых областей изображения. filterSelectorFinish – отработка действий при закрытии плагина. filterSelectorAbout – вызов окна с описанием плагина Структура плагина (2)
Обработка документа производится попиксельно
Алгоритм применяется к каждому пикселю в отдельности В рассмотренном мной плагине Dissolve, пиксели закрашиваются в определенный цвет на основе массива-маски. Каждая ячейка массива имеет булевский тип, то есть закрашивается пиксель или нет. Особенности работы алгоритма
Эта функция строит массив, на основании случайного числа от 0 до 100. Идет проверка входит ли случайное число в диапазон и в зависимости от этого Записывает 0 или 1
Эта маска используется в функции DissolveRectangle
Ресурсы плагина В плагинах используютя файлы ресурсов, в которых хранится информация о плагине, его свойствах и другая информация
PIPL ресурсы resource 'PiPL' ( 16000, "Dissolve", purgeable ) { Kind { Filter }, Name { plugInName "..." }, Category { vendorName }, Version { (latestFilterVersion
1) Название плагина 2) Разработчик плагина 3) Название плагина во вкладке меню и к кокой группе он будет относится 4) Поддерживаемые форматы PIPL-ресурсы хранят информацию о плагине:
Файлы ресурсов пишутся в формате, в котором они используются в Mac OS Для того, чтобы они работали в Windows Используется специальная программа Cnvtpipl.exe, она преобразовывает в формат ресурсов Windows. Формат ресурсных файлов