Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The values of the BMFORMAT enumerated type are used by several WCS functions to indicate the format that particular bitmaps are in.
Syntax
typedef enum {
BM_x555RGB = 0x0000,
BM_x555XYZ = 0x0101,
BM_x555Yxy,
BM_x555Lab,
BM_x555G3CH,
BM_RGBTRIPLETS = 0x0002,
BM_BGRTRIPLETS = 0x0004,
BM_XYZTRIPLETS = 0x0201,
BM_YxyTRIPLETS,
BM_LabTRIPLETS,
BM_G3CHTRIPLETS,
BM_5CHANNEL,
BM_6CHANNEL,
BM_7CHANNEL,
BM_8CHANNEL,
BM_GRAY,
BM_xRGBQUADS = 0x0008,
BM_xBGRQUADS = 0x0010,
BM_xG3CHQUADS = 0x0304,
BM_KYMCQUADS,
BM_CMYKQUADS = 0x0020,
BM_10b_RGB = 0x0009,
BM_10b_XYZ = 0x0401,
BM_10b_Yxy,
BM_10b_Lab,
BM_10b_G3CH,
BM_NAMED_INDEX,
BM_16b_RGB = 0x000A,
BM_16b_XYZ = 0x0501,
BM_16b_Yxy,
BM_16b_Lab,
BM_16b_G3CH,
BM_16b_GRAY,
BM_565RGB = 0x0001,
BM_32b_scRGB = 0x0601,
BM_32b_scARGB = 0x0602,
BM_S2DOT13FIXED_scRGB = 0x0603,
BM_S2DOT13FIXED_scARGB = 0x0604,
BM_R10G10B10A2 = 0x0701,
BM_R10G10B10A2_XR = 0x0702,
BM_R16G16B16A16_FLOAT = 0x0703
} BMFORMAT;
Constants
BM_x555RGBValue: 0x0000 16 bits per pixel. RGB color space. 5 bits per channel. The most significant bit is ignored. |
BM_x555XYZValue: 0x0101 16 bits per pixel. CIE device-independent XYZ color space. 5 bits per channel. The most significant bit is ignored. |
BM_x555Yxy16 bits per pixel. Yxy color space. 5 bits per channel. The most significant bit is ignored. |
BM_x555Lab16 bits per pixel. L*a*b color space. 5 bits per channel. The most significant bit is ignored. |
BM_x555G3CH16 bits per pixel. G3CH color space. 5 bits per channel. The most significant bit is ignored. |
BM_RGBTRIPLETSValue: 0x0002 24 bits per pixel maximum. For three channel colors, such as Red,Green,Blue, the total size is 24 bits per pixel. For single channel colors, such as gray, the total size is 8 bits per pixel. |
BM_BGRTRIPLETSValue: 0x0004 24 bits per pixel maximum. For three channel colors, such as Red,Green,Blue, the total size is 24 bits per pixel. For single channel colors, such as gray, the total size is 8 bits per pixel. |
BM_XYZTRIPLETSValue: 0x0201 24 bits per pixel maximum. For three channel, X, Y and Z values, the total size is 24 bits per pixel. For single channel gray scale, the total size is 8 bits per pixel. NOTE The TranslateBitmapBits function does not support BM_XYZTRIPLETS as an input. |
BM_YxyTRIPLETS24 bits per pixel maximum. For three channel, Y, x and y values, the total size is 24 bits per pixel. For single channel gray scale, the total size is 8 bits per pixel. NOTE The TranslateBitmapBits function does not support BM_YxyTRIPLETS as an input. |
BM_LabTRIPLETS24 bits per pixel maximum. For three channel, L, a and b values, the total size is 24 bits per pixel. For single channel gray scale, the total size is 8 bits per pixel. |
BM_G3CHTRIPLETS24 bits per pixel maximum. For three channel values, the total size is 24 bits per pixel. For single channel gray scale, the total size is 8 bits per pixel. |
BM_5CHANNEL40 bits per pixel. 8 bits apiece are used for each channel. |
BM_6CHANNEL48 bits per pixel. 8 bits apiece are used for each channel. |
BM_7CHANNEL56 bits per pixel. 8 bits apiece are used for each channel. |
BM_8CHANNEL64 bits per pixel. 8 bits apiece are used for each channel. |
BM_GRAY32 bits per pixel. Only the 8 bit gray-scale value is used. |
BM_xRGBQUADSValue: 0x0008 32 bits per pixel. 8 bits are used for each color channel. The most significant byte is ignored. |
BM_xBGRQUADSValue: 0x0010 32 bits per pixel. 8 bits are used for each color channel. The most significant byte is ignored. |
BM_xG3CHQUADSValue: 0x0304 32 bits per pixel. 8 bits are used for each color channel. The most significant byte is ignored. |
BM_KYMCQUADS32 bits per pixel. 8 bits are used for each color channel. |
BM_CMYKQUADSValue: 0x0020 32 bits per pixel. 8 bits are used for each color channel. |
BM_10b_RGBValue: 0x0009 32 bits per pixel. 10 bits are used for each color channel. The 2 most significant bits are ignored. |
BM_10b_XYZValue: 0x0401 32 bits per pixel. 10 bits are used for each color channel. The 2 most significant bits are ignored. |
BM_10b_Yxy32 bits per pixel. 10 bits are used for each color channel. The 2 most significant bits are ignored. |
BM_10b_Lab32 bits per pixel. 10 bits are used for each color channel. The 2 most significant bits are ignored. |
BM_10b_G3CH32 bits per pixel. 10 bits are used for each color channel. The 2 most significant bits are ignored. |
BM_NAMED_INDEX32 bits per pixel. Named color indices. Index numbering begins at 1. |
BM_16b_RGBValue: 0x000A 48 bits per pixel. Each channel uses 16 bits. |
BM_16b_XYZValue: 0x0501 48 bits per pixel. Each channel uses 16 bits. |
BM_16b_Yxy48 bits per pixel. Each channel uses 16 bits. |
BM_16b_Lab48 bits per pixel. Each channel uses 16 bits. |
BM_16b_G3CH48 bits per pixel. Each channel uses 16 bits. |
BM_16b_GRAY16 bits per pixel. |
BM_565RGBValue: 0x0001 16 bits per pixel. 5 bits are used for red, 6 for green, and 5 for blue. |
BM_32b_scRGBValue: 0x0601 96 bits per pixel, 32 bit per channel IEEE floating point. |
BM_32b_scARGBValue: 0x0602 128 bits per pixel, 32 bit per channel IEEE floating point. |
BM_S2DOT13FIXED_scRGBValue: 0x0603 48 bits per pixel, Fixed point integer ranging from -4 to +4 with a sign bit and 2 bit exponent and 13 bit mantissa. |
BM_S2DOT13FIXED_scARGBValue: 0x0604 64 bits per pixel, Fixed point integer ranging from -4 to +4 with a sign bit and 2 bit exponent and 13 bit mantissa. |
BM_R10G10B10A2Value: 0x0701 32 bits per pixel. 10 bits are used for each color channel. The two most significant bits are alpha. |
BM_R10G10B10A2_XRValue: 0x0702 32 bits per pixel. 10 bits are used for each color channel. The 10 bits of each color channel are 2.8 fixed point with a -0.75 bias, giving a range of [-0.76 .. 1.25]. This range corresponds to [-0.5 .. 1.5] in a gamma = 1 space. The two most significant bits are preserved for alpha. This uses an extended range (XR) sRGB color space. It has the same RGB primaries, white point, and gamma as sRGB. |
BM_R16G16B16A16_FLOATValue: 0x0703 64 bits per pixel. Each channel is a 16-bit float. The last WORD is alpha. |
Remarks
Table of bitmap formats
The follow table shows, for each of the formats, the number of bits per pixel, the number of channels, the order of the channels, and the bit-by-bit structure of each byte. You might have to scroll to the right to see all the columns of the table.
| Format | Bits Per Pixel | Number of Channels | Channel Ordering | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| BM_GRAY | 8 | 1 | K7K6K5K4K3K2K1K0 | ||||||||
| BM_565RGB | 16 | 3 | BGR | G2G1G0B4B3B2B1B0 | R4R3R2R1R0G5G4G3 | ||||||
| BM_x555RGB | 16 | 3 | BGR | G2G1G0B4B3B2B1B0 | xR4R3R2R1R0G4G3 | ||||||
| BM_x555XYZ | 16 | 3 | ZYX | Y2Y1Y0Z4Z3Z2Z1Z0 | xX4X3X2X1X0Y4Y3 | ||||||
| BM_x555Yxy | 16 | 3 | yxY | x2x1x0y4y3y2y1y0 | xY4Y3Y2Y1Y0x4x3 | ||||||
| BM_x555Lab | 16 | 3 | baL | a2a1a0b4b3b2b1b0 | xL4L3L2L1L0a4a3 | ||||||
| BM_x555G3CH | 16 | 3 | 123 | xC14C13C12C11C10C24C23 | C22C21C20C34C33C32C31C30 | ||||||
| BM_16b_GRAY | 16 | 1 | K | K7K6K5K4K3K2K1K0 | K15K14K13K12K11K10K9K8 | ||||||
| BM_RGBTRIPLETS | 24 | 3 | BGR | B7B6B5B4B3B2B1B0 | G7G6G5G4G3G2G1G0 | R7R6R5R4R3R2R1R0 | |||||
| BM_BGRTRIPLETS | 24 | 3 | RGB | R7R6R5R4R3R2R1R0 | G7G6G5G4G3G2G1G0 | B7B6B5B4B3B2B1B0 | |||||
| BM_XYZTRIPLETS | 24 | 3 | XYZ | X7X6X5X4X3X2X1X0 | Y7Y6Y5Y4Y3Y2Y1Y0 | Z7Z6Z5Z4Z3Z2Z1Z0 | |||||
| BM_YxyTRIPLETS | 24 | 3 | Yxy | Y7Y6Y5Y4Y3Y2Y1Y0 | x7x6x5x4x3x2x1x0 | y7y6y5y4y3y2y1y0 | |||||
| BM_LabTRIPLETS | 24 | 3 | Lab | L7L6L5L4L3L2L1L0 | a7a6a5a4a3a2a1a0 | b7b6b5b4b3b2b1b0 | |||||
| BM_G3CHTRIPLETS | 24 | 3 | 123 | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | |||||
| BM_xRGBQUADS | 32 | 3 | BGRx | B7B6B5B4B3B2B1B0 | G7G6G5G4G3G2G1G0 | R7R6R5R4R3R2R1R0 | xxxxxxxx | ||||
| BM_xBGRQUADS | 32 | 3 | RGBx | R7R6R5R4R3R2R1R0 | G7G6G5G4G3G2G1G0 | B7B6B5B4B3B2B1B0 | xxxxxxxx | ||||
| BM_xG3CHQUADS | 32 | 3 | 123x | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | xxxxxxxx | ||||
| BM_CMYKQUADS | 32 | 4 | KYMC | K7K6K5K4K3K2K1K0 | Y7Y6Y5Y4Y3Y2Y1Y0 | M7M6M5M4M3M2M1M0 | C7C6C5C4C3C2C1C0 | ||||
| BM_KYMCQUADS | 32 | 4 | CMYK | C7C6C5C4C3C2C1C0 | M7M6M5M4M3M2M1M0 | Y7Y6Y5Y4Y3Y2Y1Y0 | K7K6K5K4K3K2K1K0 | ||||
| BM_10b_RGB | 32 | 3 | BGR | B7B6B5B4B3B2B1B0 | G5G4G3G2G1G0B9B8 | R3R2R1R0G9G8G7G6 | xxR9R8R7R6R5R4 | ||||
| BM_10b_XYZ | 32 | 3 | ZYX | Z7Z6Z5Z4Z3Z2Z1Z0 | Y5Y4Y3Y2Y1Y0Z9Z8 | X3X2X1X0Y9Y8Y7Y6 | xxX9X8X7X6X5X4 | ||||
| BM_10b_Yxy | 32 | 3 | yxY | y7y6y5y4y3y2y1y0 | x5x4x3x2x1x0y9y8 | Y3Y2Y1Y0x9x8x7x6 | xxY9Y8Y7Y6Y5Y4 | ||||
| BM_10b_Lab | 32 | 3 | baL | b7b6b5b4b3b2b1b0 | a5a4a3a2a1a0b9b8 | L3L2L1L0a9a8a7a6 | xxL9L8L7L6L5L4 | ||||
| BM_10b_G3CH | 32 | 3 | 321 | C37C36C35C34C33C32C31C30 | C25C24C23C22C21C20C39C38 | C13C12C11C10C29C28C27C26 | xxC19C18C17C16C15C14 | ||||
| BM_NAMED_INDEX | 32 | n7n6n5n4n3n2n1n0 | n15n14n13n12n11n10n9n8 | n23n22n21n20n19n18n17n16 | n31n30n29n28n27n26n25n24 | ||||||
| BM_5CHANNEL | 40 | 5 | 12345 | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | C47C46C45C44C43C42C41C40 | C57C56C55C54C53C52C51C50 | |||
| BM_6CHANNEL | 48 | 6 | 123456 | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | C47C46C45C44C43C42C41C40 | C57C56C55C54C53C52C51C50 | C67C66C65C64C63C62C61C60 | ||
| BM_16b_RGB | 48 | 3 | RGB | R7R6R5R4R3R2R1R0 | R15R14R13R12R11R10R9R8 | G7G6G5G4G3G2G1G0 | G15G14G13G12G11G10G9G8 | B7B6B5B4B3B2B1B0 | B15B14B13B12B11B10B9B8 | ||
| BM_16b_XYZ | 48 | 3 | XYZ | X7X6X5X4X3X2X1X0 | X15X14X13X12X11X10X9X8 | Y7Y6Y5Y4Y3Y2Y1Y0 | Y15Y14Y13Y12Y11Y10Y9Y8 | Z7Z6Z5Z4Z3Z2Z1Z0 | Z15Z14Z13Z12Z11Z10Z9Z8 | ||
| BM_16b_Lab | 48 | 3 | Lab | L7L6L5L4L3L2L1L0 | L15L14L13L12L11L10L9L8 | a7a6a5a4a3a2a1a0 | a15a14a13a12a11a10a9a8 | b7b6b5b4b3b2b1b0 | b15b14b13b12b11b10b9b8 | ||
| BM_16b_G3CH | 48 | 3 | 321 | C37C36C35C34C33C32C31C30 | C315C314C313C312C311C310C39C38 | C27C26C25C24C23C22C21C20 | C215C214C213C212C211C210C29C28 | C17C16C15C14C13C12C11C10 | C115C114C113C112C111C110C19C18 | ||
| BM_16b_Yxy | 48 | 3 | Yxy | Y7Y6Y5Y4Y3Y2Y1Y0 | Y15Y14Y13Y12Y11Y10Y9Y8 | x7x6x5x4x3x2x1x0 | x15x14x13x12x11x10x9x8 | y7y6y5y4y3y2y1y0 | y15y14y13y12y11y10y9y8 | ||
| BM_7CHANNEL | 56 | 7 | 1234567 | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | C47C46C45C44C43C42C41C40 | C57C56C55C54C53C52C51C50 | C67C66C65C64C63C62C61C60 | C77C76C75C74C73C72C71C70 | |
| BM_8CHANNEL | 64 | 8 | 12345678 | C17C16C15C14C13C12C11C10 | C27C26C25C24C23C22C21C20 | C37C36C35C34C33C32C31C30 | C47C46C45C44C43C42C41C40 | C57C56C55C54C53C52C51C50 | C67C66C65C64C63C62C61C60 | C77C76C75C74C73C72C71C70 | C87C86C85C84C83C82C81C80 |
| BM_32b_scRGB | 96 | 3 | BGR | ||||||||
| BM_32b_scARGB | 128 | 3 | BGRA | ||||||||
| BM_S2DOT13FIXED_scRGB | 48 | 3 | BGR | ||||||||
| BM_S2DOT13FIXED_scARGB | 64 | 3 | BGRA | ||||||||
| BM_R10G10B10A2 | 32 | 3 | ABGR | A7A6B5B4B3B2B1B0 | B7B6B5B4G3G2G1G0 | G7G6G5G4G3G2R1R0 | R7R6R5R4R3R2R1R0 | ||||
| BM_R10G10B10A2_XR | 32 | 3 | ABGR | A7A6B5B4B3B2B1B0 | B7B6B5B4G3G2G1G0 | G7G6G5G4G3G2R1R0 | R7R6R5R4R3R2R1R0 | ||||
| BM_R16G16B16A16_FLOAT | 64 | 3 | RGBA | R7R6R5R4R3R2R1R0 | R7R6R5R4R3R2R1R0 | G7G6G5G4G3G2G1G0 | G7G6G5G4G3G2G1G0 | B7B6B5B4B3B2B1B0 | B7B6B5B4B3B2B1B0 | A7A6A5A4A3A2A1A0 | A7A6A5A4A3A2A1A0 |
Requirements
| Requirement | Value |
|---|---|
| Minimum supported client | Windows 2000 Professional [desktop apps only] |
| Minimum supported server | Windows 2000 Server [desktop apps only] |
| Header | icm.h |