BITMAPINFO


typedef struct tagBITMAPINFO {
    BITMAPINFOHEADER  bmiHeader;
    RGBQUAD           bmiColors[1];
} BITMAPINFO;

Defines the dimensions and color information for a Windows 3.x DIB.

bmiHeader

A BITMAPINFOHEADER structure that contains information about the dimensions and color format of a DIB.

bmiColors

An array of RGBQUAD structures that define the colors in the bitmap.

A Windows 3.x DIB consists of two distinct parts: a BITMAPINFO data structure that describes the dimensions and colors of the bitmap, and an array of bytes that define the pixels of the bitmap. The bits in the array are packed together, but each scan line must be padded with zeros to end on a 32-bit boundary. Segment boundaries, however, can appear anywhere in the bitmap. The origin of the bitmap is the lower-left corner.

The biBitCount member of the BITMAPINFOHEADER structure determines the number of bits which define each pixel and the maximum number of colors in the bitmap. This member may be set to one of these values:

1

Bitmap is monochrome, and the bmiColors member must contain two entries. Each bit in the bitmap array represents a pixel. If the bit is clear, the pixel is displayed with the color of the first entry in the bmiColors member; if the bit is set, the pixel has the color of the second entry in the table.

4

Bitmap has a maximum of 16 colors, and the bmiColors member contains up to 16 entries. Each pixel in the bitmap is represented by a 4-bit index into the color table.

For example, if the first byte in the bitmap is 0x1F, then the byte represents two pixels. The first pixel contains the color in the second table entry, and the second pixel contains the color in the sixteenth table entry.

8

Bitmap has a maximum of 256 colors, and the bmiColors member contains up to 256 entries. In this case, each byte in the array represents a single pixel.

24

Bitmap has a maximum of 2**24 colors. The bmiColors member is NULL, and each three bytes in the bitmap array represents the relative intensities of blue, green, and red, respectively, of a pixel.


Alternatively, for functions that use DIBs, bmiColors can be an array of 16-bit unsigned integers that specify an index into the currently realized, logical palette instead of explicit RGB values. In this case, an application using the bitmap must call DIB functions with the wColorUse parameter set to DIB_PAL_COLORS.

See also BITMAPINFOHEADER