[[: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