Photoshop插件开发

1.      获取SDK

http://www.adobe.com/devnet/photoshop/sdk.html,根据需要找到对应的版本,现在最新的是Adobe Photoshop CC 2014的SDK,另外还有CS、CS2、CS3、CS4、Touch、CS5、CS6、CC的SDK。这里以CC为例。

2.      探索SDK

Plug-In SDK:开发者可以使用这个SDK来创建插件和扩展Adobe Photoshop CC的功能。

Connection SDK:使用这个SDK,开发者可以创建和使得APP能操控或与PhotoshopCC通信。

3.      用Plug-in SDK开发PS插件

这个开发包是为c语言开发者准备的,可用来编写Windows和MAC操作系统下的PS插件。开发包下的源码Mac下是XCode,Windows下是Visual C++。

使用开发包下的documentation.html来了解插件的具体开发资料。如SDK程序员指南就涵盖了许多插件开发知识,包括:

1.      插件基础

2.      插件类型

3.      插件接口

4.      内存管理策略

5.      创建Mac操作系统下的插件

6.      创建Windows操作系统下的插件

7.      回调和回调功能集

8.      编写插件

9.      插件的脚本支持

10.  创建PiPL资源

11.  样例代码

12.  杂项

4.      例子插件MFCPlugin

这里挑选了SDK中的一个例子插件MFCPlugin,它展示了在插件开发中使用MFC,其各项功能的入口如下:

CMFCPlugInApp theApp;

SPBasicSuite * sSPBasic = NULL;

SPPluginRef      gPlugInRef = NULL;

DLLExport SPAPI void PluginMain(const int16 selector,

                                     FilterRecordPtr filterParamBlock,

                                     intptr_t* data,

                                     int16* result);

DLLExport SPAPI void PluginMain(const int16 selector,

                                     FilterRecordPtr filterParamBlock,

                                     intptr_t* data,

                                     int16* result)

{

 

         sSPBasic= filterParamBlock->sSPBasic;

         gPlugInRef= (SPPluginRef)filterParamBlock->plugInRef;

 

         try

         {

                   theApp.Entry(filterParamBlock,data);

 

                   switch(selector )

                   {

                            case filterSelectorAbout:

                                     sSPBasic = ((AboutRecordPtr)(filterParamBlock))->sSPBasic;

                                     gPlugInRef = (SPPluginRef)((AboutRecordPtr)(filterParamBlock))->plugInRef;

                                     theApp.About();

                                     break;

                            case filterSelectorParameters:

                                     theApp.Parameters();

                                     break;

                            case filterSelectorPrepare:

                                     theApp.Prepare();

                                     break;

                            case filterSelectorStart:

                                     theApp.Start();

                                     break;

                            case filterSelectorContinue:

                                     theApp.Continue();

                                     break;

                            case filterSelectorFinish:

                                     theApp.Finish();

                                     break;

                   }

 

                   if(selector != filterSelectorAbout)

                            theApp.Exit();

 

         }

 

         catch(char* inErrorString)

         {

                   OutputDebugString(inErrorString);

                   char*pErrorString = (char*)filterParamBlock->errorString;

                   if(pErrorString != NULL&& (strlen(inErrorString)< 256))

                   {

                            *pErrorString = (char)strlen(inErrorString);

                            memcpy(pErrorString+1,inErrorString, (unsignedchar)(*pErrorString));

                   }

                   *result= errReportString;

 

         }

        

         catch(short inError)

         {

                   *result= inError;

         }

        

         catch(...)

         {

                   *result= -1;

         }

}

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值