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 提供的两个 COM 类工厂,用于创建 WIC 组件。

工厂接口 说明
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 的可写内存中表示形式。
解码器 用于将图像数据从流解码为可用于图像处理的格式。
编码器 将图像数据写入流。
用于从文件、网络资源、内存块等读取和写入数据。
格式转换器 用于从一个像素格式转换为另一种像素格式。
元数据查询读取器 用于读取图像或图像帧的元数据。
元数据查询编写器 用于将元数据写入图像或图像帧。

 

另请参阅

参考

示例和代码示例