﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-日日勤作息-随笔分类-PhotoShop SDK</title><link>http://www.cppblog.com/zealsoft/category/25.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 01 Feb 2009 11:20:41 GMT</lastBuildDate><pubDate>Sun, 01 Feb 2009 11:20:41 GMT</pubDate><ttl>60</ttl><item><title>PhotoShop SDK的获取</title><link>http://www.cppblog.com/zealsoft/archive/2005/10/09/597.html</link><dc:creator>zealsoft</dc:creator><author>zealsoft</author><pubDate>Sun, 09 Oct 2005 03:27:00 GMT</pubDate><guid>http://www.cppblog.com/zealsoft/archive/2005/10/09/597.html</guid><wfw:comment>http://www.cppblog.com/zealsoft/comments/597.html</wfw:comment><comments>http://www.cppblog.com/zealsoft/archive/2005/10/09/597.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cppblog.com/zealsoft/comments/commentRss/597.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zealsoft/services/trackbacks/597.html</trackback:ping><description><![CDATA[早期的PhotoShop的SDK是免费的，不过现在已经收费了。主要是因为编写PS插件的人太多，Adobe觉得可以赚一笔了。你现在仍然可以从<A href="http://www.centaurix.com/support/viewtopic.php?t=12">这个地址</A>找到4.0和5.0的SDK。不过最新版本的SDK只能从<A href="http://partners.adobe.com/public/developer/photoshop/devcenter.html">Adobe PhotoShop Developer Center</A>获得。一般的，你必须加入ASN Developer Program（收费）才能获得全部SDK。不过你也可以提出申请，说明理由，Adobe可能会给予你免费的SDK。由于我们编写插件的目的是为了教学研究使用，所以Adobe给予了免费的SDK。不过这个SDK中没有包括Import和FileFormat等一些插件的头文件、文档和例子。不知道这是不是免费的SDK和收费的SDK的区别。 <img src ="http://www.cppblog.com/zealsoft/aggbug/597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zealsoft/" target="_blank">zealsoft</a> 2005-10-09 11:27 <a href="http://www.cppblog.com/zealsoft/archive/2005/10/09/597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PhotoShop的插件体系</title><link>http://www.cppblog.com/zealsoft/archive/2005/10/06/557.html</link><dc:creator>zealsoft</dc:creator><author>zealsoft</author><pubDate>Thu, 06 Oct 2005 02:17:00 GMT</pubDate><guid>http://www.cppblog.com/zealsoft/archive/2005/10/06/557.html</guid><wfw:comment>http://www.cppblog.com/zealsoft/comments/557.html</wfw:comment><comments>http://www.cppblog.com/zealsoft/archive/2005/10/06/557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zealsoft/comments/commentRss/557.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zealsoft/services/trackbacks/557.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">PhotoShop的插件体系由两部分组成，一是插件(plug-in modules)，二是宿主(plug-in hosts)。插件是Adobe或第三方开发者开发的、用以扩展标准Photoshop功能的软件模块，用户可以不需改动宿主的代码，而通过在系统中增加或升级插件以满足自己的需要。宿主则负责把插件载入内存并通过一定接口进行调用、协作，当插件功能完毕之后，将插件从内存中卸载。<A href="http://thepluginsite.com/knowhow/tutorials/introduction/introduction.htm">Harald Heim的文章</A>中介绍了支持PhotoShop插件的许多宿主软件。<BR><BR>每个PhotoShop插件的文件扩展名虽然都是.8开头（表1），其实都是DLL文件。每个DLL中可以有多个插件，不过一般只带有一个插件。<BR><BR>表1 插件的类型和控制名<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<TABLE class=MsoNormalTable style="mso-cellspacing: 1.5pt" cellSpacing=3 cellPadding=0 border=1>
<TBODY>
<TR style="mso-yfti-irow: 0">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">文件类型<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">扩展名<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 1">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">通用<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BP<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 2">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Automation<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8LI<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 3">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Color Picker<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BC<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 4">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Import<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BA<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 5">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Export <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BX<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 6">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Extension <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BE<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 7; mso-yfti-lastrow: yes">
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Filter <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">.8BF<o:p></o:p></SPAN></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><BR>使用<A href="http://www.dependencywalker.com/">Depends</A>查看一个Dissolve.8bf的输出函数就可以发现，其中的PluginMain函数是插件的入口函数，PhotoShop将通过这个函数访问插件的功能。这个函数的名字可以通过修改资源文件的方式修改。另一个<A href="mailto:_DissolveProc@16">_DissolveProc@16</A>是窗口回调函数，与PhotoShop无关。<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype></SPAN></P><img src ="http://www.cppblog.com/zealsoft/aggbug/557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zealsoft/" target="_blank">zealsoft</a> 2005-10-06 10:17 <a href="http://www.cppblog.com/zealsoft/archive/2005/10/06/557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PhotoShop插件的开发</title><link>http://www.cppblog.com/zealsoft/archive/2005/09/12/206.html</link><dc:creator>zealsoft</dc:creator><author>zealsoft</author><pubDate>Mon, 12 Sep 2005 09:22:00 GMT</pubDate><guid>http://www.cppblog.com/zealsoft/archive/2005/09/12/206.html</guid><wfw:comment>http://www.cppblog.com/zealsoft/comments/206.html</wfw:comment><comments>http://www.cppblog.com/zealsoft/archive/2005/09/12/206.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/zealsoft/comments/commentRss/206.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zealsoft/services/trackbacks/206.html</trackback:ping><description><![CDATA[<p>之所以想开发PhotoShop的插件，来自于上学期的经历。有个其他老师的学生老来问一些关于MFC的问题，她正在做一个合成孔径雷达(SAR)图象评估的软件。作为一个电子工程系的学生，她的编程基础当然不是很理想，所以那些GDI、窗口变换、文件操作的基本问题都可以难上她几周的时间，看上去很可怜。象她这样研究SAR的，机器上都装有PhotoShop，我说你可以编写一个PhotoShop插件，这样就不用去了解那些Windows编程的细节，将精力主要集中在SAR算法上，否则两年的时间怎么够用呀，而且你注定无法成为一个Windows编程的高手，还是成为SAR专家比较靠得住。可是她的老师没有想到过PhotoShop插件，她也从来没有想过。我在想，有多少象她这样的情况呢？所以，决定研究一下PhotoShop插件的编写，也许对许多搞科研的人有用。下面介绍一下PhotoShop的插件所需要的基本工具和基本概念。</p>
<p>要编写PhotoShop的插件需要PhotoShop SDK。要得到该SDK，需要到<a href="http://www.adobe.com/devnet/photoshop/">http://www.adobe.com/devnet/photoshop/</a>下载，安装以后包括编写插件所需要的头文件、资源文件、文档、辅助工具和例子。由于PhotoShop最初是从Mac机上移植过来的，所以它的文档和大多数例子都有Mac机的痕迹，Adobe推荐在Windows上使用Mac机的资源格式，这样可以方便开发支持Windows和Mac的插件，这对于从小就用Windows开发的人来说够痛苦的。而且它的文档从5.0版本以来就没有怎么更新，所以最新的内容许多要靠阅读例子获得。PhotoShop的开发主要使用C/C++语言，SDK中的所有例子都包括Visual Studio.NET 2003的工程，这点还比较方便。</p>
<p style="MARGIN-RIGHT: 0px">PhotoShop支持的插件有以下种类：<br>
<ul>
    <li>Automation<br>Automation模块可以访问所有Photoshop脚本事件。这些模块都出现在Automate菜单或Help菜单。在SDK的Photoshop Actions Guide.pdf中介绍了这些插件的开发。
    <li>Color Picker<br>Color Picker模块为实现不同的颜色选择器提供一个插件接口。
    <li>Import<br>Import模块在一个新的窗口打开图象。Import模块，常用于扫描仪或视频捕捉卡接口，读取压缩格式或系统不支持的文件，通过Import 子菜单调用。
    <li>Export<br>Export模块输出已存在的图象，，常用于控制特殊打印机或以非标准压缩格式进行文件输出，通过Export子菜单调用。
    <li>Extension<br>Extension模块是内部模块，接口不公开。
    <li>Filter<br>Filter模块（滤镜）实施对当前图像中的选定区域进行修改、润色。这是大家最熟悉的部分，许多图像效果便是出自这些模块，通过Filter菜单调用。
    <li>Format<br>Format模块，也叫File Format和Image Format模块，提供对读写其他图象格式的支持。它们出现在Open..., Save As...和Save a Copy...等对话框的格式弹出菜单中。
    <li>Parser<br>Parser模块类似Import和Export模块，提供在Photoshop和其他 (通常是矢量的)格式，如Adobe Illustrator&#8482; or Adobe&#174; PageMaker&#8482;之间交换数据的支持。它们的接口不公开。
    <li>Selection<br>Selection模块修改图象中被选中的像素，也可以返回路径或像素选择区。这些模块出现在Selection菜单下。</li>
</ul>
<p>如果想读些入门教程，可以参考以下文章
<ul>
    <li>
    <div style="MARGIN-RIGHT: 0px"><a href="http://http://study.flasher.cn/tux/ps/200411/60.html">Photoshop 的插件及其实现</a>（比较老了，但是基本正确）</div>
    <li>
    <div style="MARGIN-RIGHT: 0px">MACTECH中的英文文章：<a href="http://http://www.mactech.com/articles/mactech/Vol.15/15.04/PhotoshopPlug-InsPart1/">第一部分</a>和<a href="http://www.mactech.com/articles/mactech/Vol.15/15.05/PhotoshopPlug-InsPart2/">第二部分</a>，虽然是针对Mac版本写的，但是概念清楚，比SDK的文档还要经典。</div>
    </li>
</ul>
<p style="MARGIN-RIGHT: 0px">在今后的Blog中，我会逐步介绍有关开发的内容。</p>
<img src ="http://www.cppblog.com/zealsoft/aggbug/206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zealsoft/" target="_blank">zealsoft</a> 2005-09-12 17:22 <a href="http://www.cppblog.com/zealsoft/archive/2005/09/12/206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>