Illustrator插件开发-AI插件-aip格式-第一章 第一小节 概述

本文深入探讨了Illustrator插件的实现原理,重点介绍了Adobe插件组件体系结构(PICA),包括PICA的组件、插件管理及消息通信机制。文章详细讲解了插件的动态链接库形式、插件管理器的功能以及插件的生命周期。此外,还阐述了插件属性列表(PiPL)和插件入口点的概念,展示了如何响应应用程序的消息。通过理解这些核心概念,开发者可以更好地创建和管理Illustrator插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.概述

  Illustrator插件是一个动态链接库,在windows中,就是dll文件。Illustrator插件架构非常优秀。在Illustrato体系内,你可以创建插件,添加新的工具到工具栏中或者菜单栏中。同时也可以创建新的窗口,嵌入执行流程中,或者创建面板,漂浮在Illustrator框架内。提供特定的工具链。
  Illustrator内所有的插件都由插件管理器管理。在Illustrator启动时,由插件管理器加载和运行插件模块,并与插件进行消息通信。在不需要插件时,也可将其卸载。一般是在Illustrator退出时,先卸载所加载的插件。

在这里插入图片描述

2.Adobe插件组件体系结构(PICA)

  PICA是Adobe应用程序的插件管理器,它提供了插件基础设施,以及用于处理功能套件和与文件系统交互的基本工具和实用工具。

SPAccessSuite
SPAdaptersSuite
SPBasicSuite
SPBlockDebugSuite
SPBlocksSuite
SPCachesSuite
SPFilesSuite
SPInterfaceSuite
SPPluginsSuite
SPPropertiesSuite
SPRuntimeSuite
SPStringsSuite
SPSuitesSuite

  PICA插件必须具有有效的插件属性列表(’ PiPL ‘)资源,并且必须具有PiPL描述的代码入口点。’ PiPL '资源包含关于插件类型和如何调用插件的信息。PICA只将带有PiPL资源的文件视为潜在的插件。插件代码的入口点在PiPL资源中指定。使用各种消息调用入口点,告诉它要采取的操作。按照约定,插件入口点是一个名为PluginMain的C函数。例如:

extern "C" ASErr ASAPI PluginMain(char* caller, char* selector, void* message)
{
        ASErr error = kNoErr;
        SPMessageData *msgData = (SPMessageData *)message;
        // Plug-in code goes here
        return error;
}

  三个参数被传递到插件入口点,它们共同组成一条消息。前两个参数是C风格字符串,用于标识消息操作,描述插件应该做什么,请参阅插件调用器和插件选择器。第三个参数是一个指向数据结构的指针,该结构根据消息操作的不同而不同。函数完成时返回一个错误代码。
  应用程序的API由组织成套件的回调函数组成。在插件可以使用作为套件一部分的函数之前,必须首先获取包含该函数的套件。函数套件是一个充满函数指针的结构体(C结构体),当插件获得一个套件时,将返回一个指向该结构体的指针。当不再需要该功能套件时,将释放所获取的套件。这样做非常重要,这样才能使PICA管理器最佳地运行。例如,PICA跟踪一个套件被请求的次数。如果插件添加的套件不再使用(其引用计数为0),插件可能会被卸载以释放内存。有关更多信息,请参阅SPBasicSuite。

3.作者答疑


  如有疑问,请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值