150 likes | 458 Views
Разработка плагина для Photoshop CS5. Необходимые инструменты. Visual Studio 2008 PhotoShop CS5 PhotoShop CS5 SDK http://www.adobe.com/devnet/photoshop/sdk.html. Точка входа в плагин. DLLExport MACPASCAL void PluginMain(const int16 selector, FilterRecordPtr filterRecord, intptr_t * data,
E N D
Необходимые инструменты • Visual Studio 2008 • PhotoShop CS5 • PhotoShop CS5 SDK http://www.adobe.com/devnet/photoshop/sdk.html
Точка входав плагин 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 – проверка параметров, вызов диалога и подготовка к обработке изображения
Структура плагина (2) • filterSelectorContinue – обработка всех необходимых областей изображения. • filterSelectorFinish – отработка действий при закрытии плагина. • filterSelectorAbout – вызов окна с описанием плагина
Обработка документа производится попиксельно
Особенности работы алгоритма Алгоритм применяется к каждому пикселю в отдельности В рассмотренном мной плагине Dissolve, пиксели закрашиваются в определенный цвет на основе массива-маски. Каждая ячейка массива имеет булевский тип, то есть закрашивается пиксель или нет.
Эта функция строит массив, на основании случайного числа от 0 до 100. Идет проверка входит ли случайное число в диапазон и в зависимости от этого Записывает 0 или 1
Эта маска используется в функции DissolveRectangle
Ресурсы плагина В плагинах используютя файлы ресурсов, в которых хранится информация о плагине, его свойствах и другая информация
PIPL ресурсы • resource 'PiPL' ( 16000, "Dissolve", purgeable ) • { • { • Kind { Filter }, • Name { plugInName "..." }, • Category { vendorName }, • Version { (latestFilterVersion << 16 ) | latestFilterSubVersion }, • #ifdef __PIMac__ • #if (defined(__i386__)) • CodeMacIntel32 { "PluginMain" }, • #endif • #if (defined(__x86_64__)) • CodeMacIntel64 { "PluginMain" }, • #endif • #else • #if defined(_WIN64) • CodeWin64X86 { "PluginMain" }, • #else • CodeWin32X86 { "PluginMain" }, • #endif • #endif • SupportedModes • { • noBitmap, doesSupportGrayScale, • noIndexedColor, doesSupportRGBColor, • doesSupportCMYKColor, doesSupportHSLColor, • doesSupportHSBColor, doesSupportMultichannel, • doesSupportDuotone, doesSupportLABColor • },
PIPL-ресурсы хранят информацию о плагине: 1) Название плагина 2) Разработчик плагина 3) Название плагина во вкладке меню и к кокой группе он будет относится 4) Поддерживаемые форматы
Формат ресурсных файлов Файлы ресурсов пишутся в формате, в котором они используются в Mac OS Для того, чтобы они работали в Windows Используется специальная программа Cnvtpipl.exe, она преобразовывает в формат ресурсов Windows.