您现在的位置: IT专家网 > WinSystem子站 > 技巧
编写支持WIC的CODEC 并对图像格式支持
Vista Explorer、照片库和 Image Viewer 都基于 WIC 而构建,因此一旦在 Vista 系统中安装支持 WIC 的 CODEC,Vista 就会为相关图像格式提供与该平台所包含的标准图像格式同样级别的支持。
摘要: Windows Imaging Component (WIC) 是 Windows Vista 中用于进行数字成像的扩展平台,它可以作为 .NET Framework 3.0 的部件或能够重新发布的独立组件,也用于 Windows XP 和 Windows Server 2003 中。WIC 在应用程序和 CODEC 之间提供一个抽象层,使应用程序不必专门认知特定的图像格式。无论哪种图像格式,只要机器上装有用于该图像格式的支持 WIC 的 CODEC,任何使用 Windows Imaging Component 的应用程序就能够通过一组一致的接口访问、显示、处理、保存和打印图像。
Windows Vista Explorer、照片库和 Image Viewer 都基于 WIC 而构建,因此一旦在 Windows Vista 系统中安装支持 WIC 的 CODEC,Windows Vista 就会为相关图像格式提供与该平台所包含的标准图像格式同样级别的支持。针对自己的图像格式编写 CODEC 后,无论这一图像格式用于何种场合,都能确保质量始终如一,而且能够在保护 IP 投资的同时从平台给予的全面支持中获益。
Windows Imaging Component 的工作原理
发现和仲裁
要想将图像解码,必须首先找到能够将该图像格式解码的相应 CODEC。在大多数系统中,所支持的图像格式是硬编码的,因此不需要发现过程。由于 WIC 平台是可扩展的,因此能够识别图像的格式并将其与相应 CODEC 相匹配是十分必要的。
为了支持运行时发现,每个图像格式必须有一个能够用来识别其适用解码器的识别模式(我们强烈建议对新文件格式的识别模式使用 GUID,因为它一定是唯一的)。识别模式必须嵌入符合该图像格式的每个图像文件中。每个解码器都有一个用于指定解码器能够解码的图像格式识别模式的注册表项。当应用程序需要打开图像时,它会向 WIC 请求一个解码器。WIC 在注册表中查找可用解码器,并检查每个注册表项以找到与嵌入图像文件的模式匹配的识别模式。我们将在解码器专用注册表项中详细讲解此内容。
当 WIC 找到一个与图像识别模式匹配的解码器时,会将该解码器实例化并将图像文件传递给它。如果 WIC 找到多个匹配项,则会在每个匹配的解码器上调用 QueryCapability 方法,以便在其中作出仲裁,找到最适合的匹配。我们将在 IWICBitmapDecoder 接口的 QueryCapability 方法部分详细讨论此内容。
注意 只有签名的 CODEC 才可以参与 WIC 发现过程。
解码
一旦合适的解码器被选中并实例化,应用程序就会直接与解码器通信。解码器有几种职责,各种职责通过不同的接口来实现。这些服务可分为:
容器级服务
帧级服务
元数据枚举服务
本机解码器转换
进度通知和取消支持
原始数据处理服务
容器级服务包括检索顶级缩略图(如果支持)、预览、颜色上下文、调色板(如果适用)和容器格式,以及提供对容器内个别图像帧的访问(有些容器仅包含一个帧,而其他的(例如 TIFF)则包含多个帧)。这组服务还包括提供有关解码器本身及特定图像文件处理能力的信息。
- 本文关键词:

