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

 

另请参阅

参考

示例和代码示例