General Structures > BITMAPINFOHEADER |
The PIC_PARM Head field is a BITMAPINFOHEADER. This is the identical structure defined in Windows. The PICTools operations have extended the values available for biCompression and they have slightly overloaded the meaning of biClrImportant as it is related to biClrUsed. PICTools operations also fully initialize the BITMAPINFOHEADER fields. Windows allows some fields to be 0 if the correct value can then be computed using other fields. Therefore, a BITMAPINFOHEADER in a file not created by PICTools operations might have values that are not fully consistent with the following descriptions.
Copy Code | |
---|---|
typedef struct {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER; |
Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biSize |
Set to sizeof(BITMAPINFOHEADER). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biWidth |
Width of the image in pixels. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biHeight |
Height of the image in pixel lines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biPlanes |
Always 1. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biBitCount |
The number of bits per pixel. Standard Windows .BMP files allow values of 1, 4, 8, 16, 24, and 32. 16-bit Windows has difficulty with 16 and 32. Not all values are permitted by all PICTools operations. The number of bits per pixel is directly related to the maximum possible number of colors per pixel. As each bit can represent 2 colors, the maximum number of colors is 2 raised to the biBitCount power - except the 32-bits/pixel format reserves the high-order 8 bits for other purposes which are not standardized. Thus the number of colors for 32 bits per pixel is ordinarily regarded as the same as the number of colors for 24 bits per pixel. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biCompression |
This value indicates the format of the image. The possible values as extended by the PICTools operations are:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biSizeImage |
This value is the size in bytes of the image data. Each pixel line may be padded out to some boundary, frequently a DWORD boundary, so computing the biSizeImage, even for a DIB, is not necessarily as straightforward as multiplying the width times the height times the bits per pixel and dividing by 8 bits per byte. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biXPelsPerMeter |
This value is stored and retrieved by the PICTools operations. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biYPelsPerMeter |
This value is stored and retrieved by the PICTools operations. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biClrUsed |
This is the number of RGBQUAD elements in the ColorTable associated with the image. If there is no ColorTable associated with the image, this will be 0. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biClrImportant |
This is the number of RGBQUAD elements in the ColorTable which are used in the image. The first biClrImportant elements of ColorTable are used. biClrImportant is always less than or equal to biClrUsed. |
Some PICTools operations overload the meaning slightly. If biClrImportant is less than biClrUsed, then the colors from the ColorTable element whose index is biClrImportant and extending to the end of the ColorTable, can be used as a secondary ColorTable. This allows optimal color tables to be determined based on two different image bit depths and allows both to be embedded in the image.