X BitMap
This article needs additional citations for verification. (July 2009) |
Filename extension |
.xbm |
---|---|
Internet media type |
image/x-xbitmap unofficial image/x-xbm unofficial |
Type of format | Image file formats |
Extended to | XPM |
In computer graphics, the X Window System uses X BitMap (XBM), a plain text binary image format, for storing cursor and icon bitmaps used in the X GUI.
XBM files differ markedly from most image files in that they take the form of C source files. This means that they can be compiled directly into an application without any preprocessing steps, but it also makes them far larger than their raw pixel data would be (each byte of image data takes at least 4 bytes in a XBM file).
Format
XBM data typically appears in headers (.h files) and consist of a series of static unsigned char arrays containing the monochrome pixel data. They feature one array per image stored in the header.
The following piece of C code exemplifies an XBM file:
#define test_width 16
#define test_height 7
static char test_bits[] = {
0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,
0x00, 0x60 };
In place of the usual image-file-format header, XBM files have two or four #define statements. The first two #defines specify the height and width of the bitmap in pixels. The second two, if they exist, specify the position of any hotspot within the bitmap. (Programmers use a hotspot within the image for bitmapped cursors to define where to position the "pointer" of the cursor, generally at 0,0.)
The image data consists of a line of pixel values stored in a static array. Because a single bit represents each pixel (black or white), each byte in the array contains the information for eight pixels, with the upper left pixel in the bitmap represented by the low bit of the first byte in the array. If the image width does not match a multiple of 8, the display mechanism ignores and discards the extra bits in the last byte of each row.
Support
A number of web browsers still offer support for displaying XBM images. This is a holdover from the early days of the world wide web, when XBM was the minimal non-proprietary image file format. XBM support was removed from Internet Explorer 6 and Mozilla Firefox 3.6, although it is still supported in some other browsers, including Safari, Opera and Chrome. The Arena web browser has full support since version 0.3.34 (25 July 1997)[1] The discontinued world wide web email browser Agora was also capable of reading XBM images.
See also
References
- ^ QingLong, Lu (24 March 1998). "Arena change history". Yggdrasil Computing. Archived from the original on 28 February 2003. Retrieved 3 June 2010.