引 言
此处介绍的QuickTime Component在原理上和拙文《Mac OS的Component技术简介》中的描述没有冲突,只是作为一种特例,加上QuickTime本身的一些特性,组织形式上有些区别,这些区别不是本质的。本文引用的实例是Apple官方网站上的示例程序:Electric Image Component。它是用于处理Electric Image(文件扩展名为EIM)的一个典型的QuickTime的Component(插件)。
这个例子有两大优点:
一、内容全面,包括静态图像的导入导出插件Image Importer和Image Exporter,静态图像的编解码插件Image Codec,活动图像导入导出插件Movie Importer和Movie Exporter。
二、提供的示例是跨平台的,通过在Windows下安装QuickTime SDK可以编译测试(一般使用VC 6.0或VC .NET),生成名为"ElectricImageWindows.qtx"的插件,供Windows下的基于QuickTime的应用程序使用。
第一节 Image Importer和Image Exporter
在本例程中,Image Importer和与之密切配合的Image Decompressor分别对应EI_GraphicsImport和EI_ImageDecompressor两个文件夹的源程序。这两部分可以从整个插件组中剥离出来独立工作,它们完成对静态图像的读取和解码。和完整的插件包一样,在Windows下编译生成插件,在NT系统下复制到"%SystemRoot%/System32/Q