WIC API 概述
Windows 图像处理组件 (WIC) 提供组件对象模型 (COM) 的 API,以便在 C 和 C++ 中使用。 WIC API 公开各种与图像相关的功能,包括:
- 标准 Web 图像格式的内置编解码器。
- 对标准元数据格式的内置支持。
- 各种像素格式支持。
- 高颜色支持;包括 30 位扩展范围、30 位高精度和 48 位高精度和广域像素格式。
- 用于图像编解码器、像素格式和元数据格式的可扩展框架。
本主题包含以下主题。
WIC 头文件
WIC API 在以下标头中定义,接口定义语言 (IDL) 文件:
文件 | 说明 |
---|---|
wincodec.h | 定义主要 WIC API 的 C 和 C++ 版本。 |
wincodec.idl | 定义主要 WIC 接口。 |
wincodecsdk.h | 定义元数据 WIC API 的 C 和 C++ 版本。 |
wincodecsdk.idl | 定义 WIC 元数据接口。 |
wincodec_proxy.h | 定义 WIC 代理导出。 |
若要使用 WIC,应用程序必须包含 wincodec.h 和/或 wincodecsdk.h,具体取决于应用程序所需的 API。
库文件
WIC 库文件:
文件 | 说明 |
---|---|
windowscodecs.lib | 导入由 Windows 软件开发工具包 (SDK) 提供的库。 |
windowscodecs.dll | 操作系统提供的库存实现库。 |
若要链接到 WIC API,应用程序必须包含 windowscodec.lib 作为附加链接器依赖项。
类工厂
下表描述了 WIC API 为创建 WIC 组件提供的两个 COM 类工厂。
工厂接口 | 说明 |
---|---|
IWICImagingFactory | 使用 WIC 组件进行应用程序开发的主要类工厂。 此工厂创建图像解码器、编码器和流等组件。 |
IWICComponentFactory | 面向 WIC 组件开发人员的类工厂。 从此工厂创建的组件主要用于编解码器和元数据处理程序开发。 |
若要创建任一类工厂,请使用 CoCreateInstance COM 函数。 以下示例演示如何创建 WIC 映像工厂。
// Initialize COM
CoInitialize(NULL);
// The factory pointer
IWICImagingFactory *pFactory = NULL;
// Create the COM imaging factory
HRESULT hr = CoCreateInstance(
CLSID_WICImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pFactory)
);
图像处理组件
WIC API 提供多种类型的映像组件。 下表介绍了一些常见的 WIC 组件。 有关可用组件的完整列表,请参阅 WIC 接口。
组件类型 | 说明 |
---|---|
Bitmap | 表示 IWICBitmapSource 的可写内存中表示形式。 |
解码 器 | 用于将流中的图像数据解码为对图像处理有用的格式。 |
编码器 | 将图像数据写入流。 |
流 | 用于从文件、网络资源、内存块等读取和写入数据。 |
格式转换器 | 用于从一种像素格式转换为另一种像素格式。 |
元数据查询读取器 | 用于读取图像或图像帧的元数据。 |
元数据查询编写器 | 用于将元数据写入图像或图像帧。 |
另请参阅