Graphics File Formats(Windows的.BMP .CUR .ICO文件的格式,有范例)
format. for more information about these bitmap bits, see section 1.1, "bitmap-file formats."
the and mask, immediately following the xor mask, is an array of byte values, representing a monochrome bitmap with the same width and height as the xor mask. the array is organized in scan lines, with each byte representing 8 pixels.
when windows draws an icon, it uses the and and xor masks to combine the icon image with the pixels already on the display surface. windows first applies the and mask by using a bitwise and operation; this preserves or removes existing pixel color. windows then applies the xor mask by using a bitwise xor operation. this sets the final color for each pixel.
the following illustration shows the xor and and masks that create a monochrome icon (measuring 8 pixels by 8 pixels) in the form of an uppercase k:
windows icon selection
windows detects the resolution of the current display and matches it against the width and height specified for each version of the icon image. if windows determines that there is an exact match between an icon image and the current device, it uses the matching image. otherwise, it selects the closest match and stretches the image to the proper size.
if an icon-resource file contains more than one image for a particular resolution, windows uses the icon image that most closely matches the color capabilities of the current display. if no image matches the device capabilities exactly, windows selects the image that has the greatest number of colors without exceeding the number of display colors. if all images exceed the color capabilities of the current display, windows uses the icon image with the least number of colors.
cursor-resource file format
a cursor-resource file contains image data for cursors used by windows applications. the file consists of a cursor directory identifying the number and types of cursor images in the file, plus one or more cursor images. the default filename extension for a cursor-resource file is .cur.
cursor directory
each cursor-resource file starts with a cursor directory. the cursor directory, defined as a cursordir structure, specifies the number of cursors in the file and the dimensions and color format of each cursor image. the cursordir structure has the following form:
typedef struct _cursordir { word cdreserved; word cdtype; word cdcount; cursordirentry cdentries[]; } cursordir;
following are the members in the cursordir structure:
cdreserved reserved; must be zero. cdtype specifies the resource type. this member must be set to 2. cdcount specifies the number of cursors in the file. cdentries specifies an array of cursordirentry structures containing information about individual cursors. the cdcount member specifies the number of structures in the array.
a cursordirentry structure specifies the dimensions and color format of a cursor image. the structure has the following form:
typedef struct _cursordirentry { byte bwidth; byte bheight; byte bcolorcount; byte breserved; word wxhotspot; |