Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

X PixMap

From Wikipedia, the free encyclopedia
Image file format
X PixMap
Sometext editors, for examplegvim, can display xpm images in graphical form.
Filename extension
.xpm
Internet media type
image/x-xpixmap[1]
Developed byBULL Research
Type of formatImage file formats
Extended fromXBM
Open format?yes

X PixMap (XPM) is animage file format used by theX Window System, created in 1989 by Daniel Dardailler and Colas Nahaboo working atBull Research Center atSophia Antipolis, France, and later enhanced by Arnaud Le Hors.[2][3]

It is intended primarily for creatingiconpixmaps, and supportstransparent pixels. Derived from the earlierXBM syntax, it is aplain text file in the XPM2 format or of aC programming language syntax, which can be included in a C program file.[2]

History

[edit]

XPM1

[edit]

The first (1989) XPM format is relatively similar to the XBM format.[a] Compared to XBM, it uses additional macro definitions and variables for indexed colors, and replaces bits with characters for describing the image. The following is a black-and-white image in the 1989 XPM format.

#define XFACE_format 1#define XFACE_width 48#define XFACE_height 48#define XFACE_ncolors 2#define XFACE_chars_per_pixel 1staticchar*XFACE_colors[]={"a","#ffffff","b","#000000"};staticchar*XFACE_pixels[]={"abaabaababaaabaabababaabaabaababaabaaababaabaaab",// and so on for 48 rows with 48 pixels

XPM2

[edit]

XPM2 (1990) simplifies the format by removing allC code.[b][c] The structure is simplified to

! XPM2<Values><Colors><Pixels><Optional Extensions>
  • The value section describes the overall dimension of the image similar to the#define statements.
  • The color section defines the values, and a new concept of the "type" of the color. The types may bec for "color",m for "monochrome" output,g for "grayscale", ands for "symbolic", explaining what a defined color is supposed to do.
  • The pixels and optional extensions remain as in the original format.

The above file, with width 48, height 4, 2 colors, and 1 character per pixel, becomes:

! XPM248 4 2 1a c #FFFFFFb c #000000abaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaab

Colors

[edit]

In addition to hexcodes, the colors can be any of theX11 color names. In addition,None indicates transparency.[4][5]

The "symbolic" feature permits adjusting colors depending on the context where they are used. Code such ass border c blue could be adjusted on a blue background.

Many-color encoding

[edit]

One tool is known to use onlya top for 16 colors, switching toaa up todp for 64 colors, but still reading single character encodings for 64 colors; compareBase64.

With more colors the codes use more characters, e.g.aa up topp for 16 × 16 = 256 colors. This is less useful for text editors, because a stringab could be actually the middle of two adjacent pixelsdabc. Spaces are allowed as color code, but might be a bad idea depending on the used text editor. Without control codes, backslash, and quote (needed in XPM1 and XPM3) 128 − 33 − 2 = 93ASCII characters are available for single character color codes.

Simplified example: 90 US-ASCII characters could be arranged into nine non-overlapping sets of 10 characters. Thus unambiguous strings of nine characters could set the color of each pixel by its XPM palette index with up to 109 =1000000000 colors (compare toGIF, which supports only 256).

For XPM2 it is clear how many lines belong to the image – two header lines, the second header line announcing the number of color codes (2 lines in the example above) and rows (height 4 in the example above), e.g. 2 + 2 + 4 = 8 lines.

XPM3

[edit]

The current and last format is XPM3 (1991). It re-introduces the C wrapper, but instead of explicitly showing a file's structure, the strings stored are essentially identical to XPM2.

/* XPM */staticchar*XFACE[]={"48 4 2 1","a c #ffffff","b c #000000","abaabaababaaabaabababaabaabaababaabaaababaabaaab","abaabaababaaabaabababaabaabaababaabaaababaabaaab","abaabaababaaabaabababaabaabaababaabaaababaabaaab","abaabaababaaabaabababaabaabaababaabaaababaabaaab"};

If the "values" line contains six instead of four numbers, the additional values indicate the coordinates of a "hotspot", where0 0 is the upper left corner of a box containing the icon and the default. A "hotspot" is used for mouse pointers and similar applications.

Comparison with other formats

[edit]
Blarg file opened in program window

The following code displays the same blarg file in theXBM, XPM andPBM formats.

XBM version:

#define test_width 16#define test_height 7staticchartest_bits[]={0x13,0x00,0x15,0x00,0x93,0xcd,0x55,0xa5,0x93,0xc5,0x00,0x80,0x00,0x60};
Blarg.xpm (XPM2) rendered by XnView

XPM2 version:

! XPM216 7 2 1* c #000000. c #ffffff**..*...........*.*.*...........**..*..**.**..***.*.*.*.*.*..*.***..*..**.*...**...............*.............**.

XPM3 version:

/* XPM */staticchar*blarg_xpm[]={"16 7 2 1","* c #000000",". c #ffffff","**..*...........","*.*.*...........","**..*..**.**..**","*.*.*.*.*.*..*.*","**..*..**.*...**","...............*",".............**."};

PBM file:

P116 71 1 0 0 1 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 0 0 0 0 0 0 0 0 0 0 01 1 0 0 1 0 0 1 1 0 1 1 0 0 1 11 0 1 0 1 0 1 0 1 0 1 0 0 1 0 11 1 0 0 1 0 0 1 1 0 1 0 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0

Application support

[edit]

ACDSee,Amaya,CorelDRAW,GIMP,ImageMagick,IrfanView (formats plugin),PaintShop Pro,PMView,Photoshop (plugins), andXnView among others support XPM.[6][7]Gravatar also supports XPM.[8][9]

AnX11 libXpmvulnerability was fixed in 2005,[10] and three more in 2023.[11]

FFmpeg version 3.3 or later can decode XPM.[12]

See also

[edit]
  • Netpbm – Toolkit for manipulation of images
  • CLUT – In computer graphics, a finite set of available colorsPages displaying short descriptions of redirect targets
  • X BitMap – File format

Notes

[edit]
  1. ^For a description of this format in lieu of the manual (not found on the Internet), use xpm-contrib (formerly part of libXpm proper) converter (xpm2ppm, xpm1to3, xpm1to2c) source code.
  2. ^It is also acceptable to use programming language syntaxes for string arrays, but only the C syntax is attested. The "XPM2 C" syntax eventually became the only format in XPM version 3.
  3. ^For references on this syntax, seehttps://gitlab.freedesktop.org/xorg/lib/libxpm/-/blob/master/NEWS.old and the "history" section of libXpm 3.4 manual.

References

[edit]
  1. ^.xpmMIME type notregistered atIANA
  2. ^abLe Hors, Arnaud (1996-02-01).XPM Manual: The X PixMap Format(PDF).Groupe Bull. pp. 7–8. Retrieved2014-01-01.
  3. ^Daniel Dardailler (1996-07-15)."The XPM Story". Colas Nahaboo and Arnaud Le Hors. Archived fromthe original on 1997-06-07. Retrieved2014-01-01.
  4. ^"The XPM FAQ".X.Org Foundation. 1996. Retrieved2016-03-12.
  5. ^Murray, James D.; Vanryper, William (1996).XPM File Format Summary. O'Reilly & Associates.ISBN 1-56592-161-5. Retrieved2014-01-01.{{cite book}}:|work= ignored (help)
  6. ^Nir Sofer.".xpm Extension". Retrieved2014-01-12.
  7. ^"File Type: X Windows Pixmap".Windows File Association.Microsoft. 2013. Retrieved2014-01-12.
  8. ^Gravatar unofficial, no XPM2
  9. ^Steve Kinzler (2005)."Picons Archive". Retrieved2014-01-06.picons are in either monochrome XBM format or color XPM and GIF formats
  10. ^"libXpm library contains multiple integer overflow vulnerabilities".US-CERT. 2005-10-06. VU#537878. Retrieved2014-01-01.
  11. ^"X.Org Security Advisory: Issues handling XPM files in libXpm prior to 3.5.15". 2023-01-17.
  12. ^"FFmpeg 3.3 "Hilbert"".FFmpeg. 2017-04-13. Retrieved2017-10-28.XPM decoder

See also

[edit]

External links

[edit]
Raster
Raw
Vector
Compound
Metadata
Retrieved from "https://en.wikipedia.org/w/index.php?title=X_PixMap&oldid=1276906211"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp