- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IPhotoshop的插件及其实现
Photoshop 的插件及其实现?
一、plug-in概述1.-in结构plug-in结构由两部分组成,一是插件(plug-in modules),二是宿主(plug-in hosts)。插件是Adobe或第三方开发者开发的、用以扩展标准Photoshop功能的软件模块,用户可以不需改动宿主的代码,而通过在系统中增加或升级插件以满足自己的需要。宿主则负责把插件载入内存并通过一定接口进行调用、协作,当插件功能完毕之后,将插件从内存中卸载。Adobe公司的其他产品,如Premiere、Illustrator、PageMaker等都是宿主,但是它们的plug-in结构各有不同,本文只讨论Photoshop宿主。plug-in并非Photoshop所独有,许多应用程序都支持特定的插件,Silicon Beach便是一家最早支持plug-in技术的公司,它将插件设计为独立的文件,允许这些文件放置在任意的位置,并且它引入了版本号概念,当新功能增添到接口中时能实现平稳升级。Photoshop有些近似于这一方式,它利用了相似的调用过程和版本号策略,但随着Photoshop针对真彩色图像处理和虚拟内存管理的需要所做的工作,其插入结构不断被完善和发展,现在的具体接口已经和Silicon Beach的完全不同了。2.插件类型Photoshop支持以下四种插件:Acquire modules(扩展名实现在一个新窗口中打开一幅图像,常用于扫描仪或视频捕捉卡接口,读取压缩格式或系统不支持的文件,通过Acquire子菜单调用。Export modules(扩展名.8be)实现图像输出,常用于控制特殊打印机或以非标准压缩格式进行文件输出,通过Export子菜单调用。Format modules(扩展名.8bi)实现标准读写系统不支持的特殊文件格式,出现在Open...、Save As...等对话框的格式栏中。Filter modules(扩展名.8bf)实施对当前图像中的选定区域进行修改、润色。这是大家最熟悉的部分,许多图像效果便是出自这些模块,通过Filter菜单调用。在Windows中,插件文件必须放置在特定的路径中(如\photoshop\plugins),这些路径由photos 30.ini中的PLUGIN DIRECTORY栏所指示。一个插件文件可包含一个或多个功能,但并不提倡创建多功能的插件文件,因为这样减少了插件的用户控制。然而,当一组功能紧密相关时,创建多功能的插件可以便于文件管理,弥补了前述不足,所以用户可按照具体情况编制插件。3.插件的程序接口宿主程序对插件的调用是对用户操作的响应。一般来说,执行一个用户命令会导致一系列宿主对插件的调用,所有这些调用都是通过插件的入口函数ENTRYPOINT()完成的。其结构如下:void ENTRYPOINT(short selector,void * plugin ParamBlock,long * pluginData,short *result);其中,selector参数指示宿主程序所要求的操作类型,selector=0时表示要显示一个About信息框。按照SDK的规定,此对话框必须放置在主窗口中央、不含OK按钮,但能够对回车键或在其中进行的鼠标点击作出响应。其他selector值在各种插件中有不同的定义。pluginParamBlock参数指向一个用于在宿主和插件之间来回传递信息的数据结构,这个结构随着插件类型的不同而改变。pluginData参数指向一个长整型,它是Photoshop为插件保留的固定区域,其典型的应用便是存储一个长句柄,指向一个插件的全局数据所占用的内存区,当插件第一次被调用时值为0。result参数指向一个短整型,每次当插件被调用时,它都必须设置result。当返回一个0值给宿主时,表示插件代码中没有错误出现;而当result为非0值时,则向宿主表明插件中发生了某些错误,或表明在插件的执行过程中用户取消了操作。一个插件的主结构实际上是一个多向开关,它把pluginParamBlock、PluginData和result参数发送给各个selector所对应的句柄。下面是一个Filter module的入口代码:void ENTRYPOINT( short selector, FilterRecord*filterParamBlock, long*data,short*result){Globals globalValues;GPtr globals=&globalValues;gResult=noErr;...switch(selector){ case filterSelector About
您可能关注的文档
最近下载
- 冶金安全培训课件.pptx VIP
- Yamaha 雅马哈 乐器音响 MG10XU_MG10X_MG10 Owner's Manual 用户手册.pdf
- CANoe--快速入门教程.pdf VIP
- 示波表常用软件使用说明.pdf VIP
- 《数学广角—沏茶问题》说课稿.doc VIP
- 十年高考语文真题分项汇编专题06文言文阅读(人物传记类)原卷版+解析版.docx VIP
- (推荐!)2025北京中考真题语文试题及答案.pdf VIP
- 道德与法治一年级上册第二单元 校园生活真快乐 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 儿童呕吐腹泻家庭护理ppt.pptx
- 2025北京中考真题语文试题及答案.doc VIP
文档评论(0)