BMP 格式概述

本主题提供有关通过 Windows 映像组件 (WIC) 提供的本机 BMP 编解码器的信息。

编解码器标识

下表提供了编解码器标识信息。

组件 说明
正式名称 () Windows 位图格式
文件扩展名 () bmp、dib
MIME 类型 (MIME type) image/bmp
规范支持 BMP 规范 v5

 

下表列出了用于标识本机 BMP 编解码器组件的 GUID。

组件 友好名称 GUID
容器格式 GUID_ContainerFormatBmp 0af1d87e-fcfe-4188-bdeba7906471cbe3
解码器 CLSID_WICBmpDecoder 6b462062-7cbf-400d-9fdb813dd10f2778
编码器 CLSID_WICBmpEncoder 69be8bb4-d66d-47c8-865aed1589433782

 

编码

WIC 编码 API 设计为独立于编解码器,因此启用 WIC 的编解码器的图像编码本质上是相同的。 有关使用 WIC API 进行图像编码的详细信息,请参阅 编码概述

编码器选项

启用 WIC 的编解码器在编码选项级别上有所不同。 编码器选项反映图像编码器的功能,每个本机编解码器都支持一组这些编码器选项。 编码器选项可以是所有启用 WIC 的代码的基本 WIC 支持选项, (但不一定受图像格式编解码器设计的) 或编解码器特定选项的支持。 为了在编码过程中管理这些编码选项,WIC 使用 IPropertyBag2 接口 。 有关使用 IPropertyBag2 接口进行 WIC 编码的详细信息,请参阅 编码概述

下表列出了本机 BMP 编解码器支持的 WIC 编码器选项。

属性名称 VARTYPE 值范围 默认值
EnableV5Header32bppBGRA VT_BOOL VARIANT_TRUE/VARIANT_FALSE VARIANT_FALSE

 

EnableV5Header32bppBGRA

指定是否允许以GUID_WICPixelFormat32bppBGRA像素格式对数据进行编码。 如果此选项设置为 VARIANT_TRUE,将使用 BITMAPV5HEADER 标头写出 BMP。

默认值为 VARIANT_FALSE

如果编解码器不支持的 IPropertyBag2 选项列表中存在编码器选项,则会忽略该选项。

请注意,对于 16 位和 32 位 Windows BMP 文件,BMP 编解码器会忽略任何 alpha 通道,因为许多旧图像文件在此额外通道中包含无效数据。 从 Windows 8 开始,使用 BITMAPV5HEADER 编写的具有有效 alpha 通道内容的 32 位 Windows BMP 文件将读取为 WICPixelFormat32bppBGRA

解码

WIC 解码 API 设计为与编解码器无关,而启用 WIC 的编解码器的图像解码本质上是相同的。 有关图像解码的详细信息,请参阅 解码概述。 有关使用解码的图像数据的详细信息,请参阅 位图源概述