X Pixmap azaz XPM. Egy képformátum, amelyet az X Window System rendszerekre találtak ki. 1989-ben találták ki Daniel Dardailler és Colas Nahaboo. Egy ilyen képet egy egyszerű szövegszerkesztővel is létrehozhatunk.
Kiterjesztése: xpm
Úgy találták ki, hogy egy az egyben beilleszthető legyen egy C++ forráskódba.
/* XPM */ static char* <variable_name>[] = { <Értékek> <Színek> <Pixelek> <Kiterjesztések> };
Az első sorban a szóközök száma fontos.
<szélesség> <magasság> <színek_száma> <karakter_per_pixelek_száma> [<x_hotspot> <y_hotspot>] [XPMEXT]
„70 18 4 1”,
<karakterek> {<kulcs> <szín>}+
1 vagy több karakterből állhat az első rész, amely egy színt fog jellemezni.
Kulcsok:
Kulcs | Jelentés |
---|---|
m | mono típusú |
s | szimbolikusnév |
g4 | 4 szintes szürkeárnyalatos |
g | szürkeárnyalatos, több mint 4 szinttel |
c | látható szín |
A szín lehet egy név, vagy annak RGB kódja, # karakterrel bevezetve.
„f c #000000”,
A példában egy f betű felel meg a #000000 azaz fekete színnek.
Egy pixelt egy színkóddal ábrázolunk. Egyszerűen megrajzoljuk a színkódokkal a kívánt ábrát.
/* XPM */ static char * proba1_xpm[] = { "70 18 4 1", ". c #ffffff", "f c #000000", "p c #ff0000", "z c #00ff00", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "......................................................................", "......................................................................", "......................................................................", "......................................................................", "......................................................................", "......................................................................", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" };
/* XPM */ static char *plaid[] = { /* plaid pixmap * width height ncolors chars_per_pixel */ "22 22 4 2 0 0 XPMEXT", /* colors */ " c red m white s light_color ", "Y c green m black s lines_in_mix ", "+ c yellow m white s lines_in_dark ", "x m black s dark_color ", /* pixels */ "x x x x x x x x x x x x + x x x x x ", " x x x x x x x x x x x x x x x x ", "x x x x x x x x x x x x + x x x x x ", " x x x x x x x x x x x x x x x x ", "x x x x x x x x x x x x + x x x x x ", "Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ", "x x x x x x x x x x x x + x x x x x ", " x x x x x x x x x x x x x x x x ", "x x x x x x x x x x x x + x x x x x ", " x x x x x x x x x x x x x x x x ", "x x x x x x x x x x x x + x x x x x ", " x x x x Y x x x ", " x x x Y x x ", " x x x x Y x x x ", " x x x Y x x ", " x x x x Y x x x ", "x x x x x x x x x x x x x x x x x x x x x x ", " x x x x Y x x x ", " x x x Y x x ", " x x x x Y x x x ", " x x x Y x x ", " x x x x Y x x x " "XPMEXT ext1 data1", "XPMEXT ext2", "data2_1", "data2_2", "XPMENDEXT" };
A kiterjesztésnek szerepelnie kell az értéksorban is.