Tartalomjegyzék

< Grafika

XPM

Bevezetés

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.

Felépítés

/* XPM */
static char* <variable_name>[] = {
<Értékek>
<Színek>
<Pixelek>
<Kiterjesztések>
};

Az első sorban a szóközök száma fontos.

Érték sor

Általánosan

<szélesség> <magasság> <színek_száma> <karakter_per_pixelek_száma> [<x_hotspot> <y_hotspot>] [XPMEXT]

Egy konkrét példa

„70 18 4 1”,

Színsor

Általánosan

<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.

Példa

„f c #000000”,

A példában egy f betű felel meg a #000000 azaz fekete színnek.

Pixelek

Egy pixelt egy színkóddal ábrázolunk. Egyszerűen megrajzoljuk a színkódokkal a kívánt ábrát.

Példa

Egyszerű példa

/* 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"
};

Példa a kiterjesztésre

/* 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.

XPM linkek