INF: Using Device-Independent Bitmaps and Palettes

ID Number: Q72041

3.00 3.10

WINDOWS

Summary:

The method Windows version 3.x uses to transfer colors from the color

table of a device-independent bitmap (DIB) to a device-dependent

bitmap (DDB) on a machine that supports palette operations depends on

the value of the wUsage parameter specified in calls to the

CreateDIBitmap or SetDIBits functions.

Specifying DIB_RGB_COLORS matches the colors in the DIB color table to

the logical palette associated with the device context (DC) listed in

the function call.

Specifying DIB_PAL_COLORS causes the entries in the DIB color table to

not be treated as RGB values; instead, they are treated as word

indexes into the logical palette associated with the DC listed in the

function call.

To create a device-dependent (displayable) bitmap from a DIB that

retains the same colors, follow these five steps:

1. Extract the colors from the DIB header.

2. Use the CreatePalette function to make a logical palette with

those colors.

3. Use the SelectPalette function to select the logical palette

into a device context.

4. Use the RealizePalette function to map the logical palette into

the device context.

5. Call the CreateDIBitmap function using the device context that

has the logical palette selected.

Because the CreateDIBitmap function creates a bitmap compatible with

the device, to create a device-dependent monochrome bitmap from a DIB,

call the CreateBitmap function with the desired width and height,

specifying one color plane and one bit per pixel. Then call the

SetDIBits function to render the image in the newly created

monochrome bitmap.

Additional reference words: 3.00 3.10 3.x