Разработка плагина для Photoshop CS5

Download Report

Transcript Разработка плагина для Photoshop CS5

Разработка плагина для 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, 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.