[[:oktatas:grafika|< Grafika]]
====== XPM ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2010
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== 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* [] = {
<Értékek>
};
Az első sorban a szóközök száma fontos.
===== Érték sor =====
==== Általánosan ====
[ ] [XPMEXT]
==== Egy konkrét példa ====
"70 18 4 1",
===== Színsor =====
==== Általánosan ====
{ }+
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 =====
* http://www.xfree86.org/current/xpm.pdf