Jump to content

X BitMap

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 213.211.51.62 (talk) at 14:03, 6 August 2011 (This is obvious from file format example only few lines below!). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

X BitMap
A sample XBM file
Filename extension
.xbm
Internet media type
image/x-xbitmap unofficial
image/x-xbm unofficial
Type of formatImage file formats
Extended toXPM

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

  1. ^ QingLong, Lu (24 March 1998). "Arena change history". Yggdrasil Computing. Archived from the original on 28 February 2003. Retrieved 3 June 2010.