BMP Format Overview
This topic provides information about the native BMP codec available through the Windows Imaging Component (WIC).
Codec Identity
The following table provides codec identification information.
Component | Description |
---|---|
Formal Name(s) | Windows Bitmap Format |
File Name Extension(s) | bmp, dib |
MIME type | image/bmp |
Specification Support | BMP Specification v5 |
The following table lists the GUIDs used to identify the native BMP codec components.
Component | Friendly Name | GUID |
---|---|---|
Container Format | GUID_ContainerFormatBmp | 0af1d87e-fcfe-4188-bdeba7906471cbe3 |
Decoder | CLSID_WICBmpDecoder | 6b462062-7cbf-400d-9fdb813dd10f2778 |
Encoder | CLSID_WICBmpEncoder | 69be8bb4-d66d-47c8-865aed1589433782 |
Encoding
The WIC encoding API are designed to be codec-independent and therefore image encoding for WIC-enabled codecs is essentially the same. For more information about image encoding using the WIC API, see the Encoding Overview.
Encoder Options
WIC-enabled codecs differ at the encoding option level. Encoder options reflect the capabilities of an image encoder and each native codec supports a set of these encoder options. Encoder options can be basic WIC supported options available to all WIC enabled codes (though not necessarily supported) or codec-specific options designed by the image format codec. To manage these encoding options during the encoding process, WIC uses the IPropertyBag2 interface . For more information about using the IPropertyBag2 interface for WIC encoding see the Encoding Overview.
The following table lists the WIC encoder options supported by the native BMP codec.
Property Name | VARTYPE | Value Range | Default Value |
---|---|---|---|
EnableV5Header32bppBGRA | VT_BOOL | VARIANT_TRUE/VARIANT_FALSE | VARIANT_FALSE |
EnableV5Header32bppBGRA
Specifies whether to allow encoding data in the GUID_WICPixelFormat32bppBGRA pixel format. If this option is set to VARIANT_TRUE, the BMP will be written out with a BITMAPV5HEADER header.
The default value is VARIANT_FALSE.
If an encoder option is present in the IPropertyBag2 option list that the codec does not support, it is ignored.
Note for 16-bit and 32-bit Windows BMP files, the BMP codec ignores any alpha channel, as many legacy image files contain invalid data in this extra channel. Starting with Windows 8, 32-bit Windows BMP files written using the BITMAPV5HEADER with valid alpha channel content are read as WICPixelFormat32bppBGRA
Decoding
The WIC decoding API are designed to be codec-independent and image decoding for WIC-enabled codecs is essentially the same. For more information about image decoding, see the Decoding Overview. For more information about using decoded image data, see the Bitmap Sources Overview.