Illustrator Suite之AIDataFilterSuite

来源:互联网 发布:mac 文件怎么归类 编辑:程序博客网 时间:2024/03/02 13:56

  Illustrator中的data filter可以用来读取和写入字节流,这可以用来干很多有趣的事情。如,往硬盘写文件,通过网络发送文件,执行JPEG的编码和解

码,还可以把AI的一些符号导出到GIS的符号库中。

  AIDataFilterSuite提供了很多函数来创建读取和写入文件、读取和写入缓存、读取和写入内存块、编码和解码数据、压缩和解压缩数据的filter。

使用SPBasicSuite::AcquireSuite()方法和kAIDataFilterSuite、kAIDataFilterVersion作参数来请求这个Suite。

  data filter可以链接在一起。每一个链上的filter都可以得到上个filter输出的数据。如,一个文件filter可以链接到一个ASCII编码的filter上,来构建

个二进制压缩filter,结果就是在写入文件前压缩和ASCII编码数据。

  下面的代码展示了怎样设置一个data filter来执行缓存数据写入文件。注意LinkDataFilter()必须被调用。

AIErr result = kNoErr;AIDataFilter* dstfilter = NULL;AIDataFilter* filter;if (!result)        result = sAIDataFilter->NewFileDataFilter(file, "write", 'ART5', 'TEXT', &filter);if (!result) {        result = sAIDataFilter->LinkDataFilter(dstfilter, filter);        dstfilter = filter;}if (!result)        result = sAIDataFilter->NewBufferDataFilter(32*1024, &filter);if (!result) {        result = sAIDataFilter->LinkDataFilter(dstfilter, filter);        dstfilter = filter;}When you have finished with a filter, you can use the following code to close it. AIErr result = kNoErr;while (dstfilter)  {        AIErr tmpresult = sAIDataFilter->UnlinkDataFilter(dstfilter, &dstfilter);        if (!result)                result = tmpresult;}


0 0
原创粉丝点击