Ir al contenido

X PixMap

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 04:06 28 oct 2014 por AlexNugaev721 (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
X Pixmap


Algunos editores de texto, por ejemplo gvim, pueden mostrar imágenes xpm en forma gráfica.
Desarrollador
BULL Research
Información general
Extensión de archivo .xpm
Tipo de MIME image/x-xpixmap
image/x-xpm (ambos no oficiales)
Número mágico 2F2A2058504D202A2F
Tipo de formato Gráficos
Extendido de XBM y Portable pixmap
Formato abierto Sí 

X Pixmap (XPM) es un formato de archivo gráfico usado por X Window System, creado en 1989 por Daniel Dardailler y Colas Nahaboo trabajando para Bull Research Center en Sophia Antipolis, Francia, y luego mejorado por Arnaud Le Hors.[1][2]

Fue creado inicialmente para mapas de pixeles en iconos, y soportaba transparencia en color. Descendiente del antiguo XBM,[3]​ es un archivo en texto plano con sintaxis de lenguaje C, por lo que puede ser incluido en una fuente de un programa en lenguaje C.[4]

Sintaxis

XPM

El formato XPM es un arreglo de cadenas de caracteres en lenguaje C compuesto de seis secciones como se describe a continuación:

static char* <nombre_de_variable>[] = {
<Valores>
<Colores>
<Pixeles>
<Extensiones>
};

Esta es una imagen en blanco y negro en la primera versión de XPM (1989):

/* XPM */
static char * XFACE[] = {
/* <Valores> */
/* <ancho/columnas> <altura/filas> <colores> <caracteres por pixel>*/
"48 4 2 1",
/* <Colores> */
"a c #ffffff",
"b c #000000",
/* <Pixeles> */
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab"
};

La sección de valores contiene el ancho, la altura, el número de colores, y el número de caracteres por pixel.

XPM2

XPM2 simplifica el formato removiendo la sintaxis en lenguaje C. Un ejemplo::

! XPM2
128 128 64 1
z c #f6f6f6
Z c #eeeeee
:''etc., palette using '''1''' character codes''
@ c #080808
. c #000000
............................................

Este es un archivo de formato XPM2 con un ancho de 128, altura e 128, 64 colores, usando un caraqcter por pixel.

Una opción es usar solo la a hasta la p para 16 colores, cambiando a aa hasta dp para 64 colores. Con más colores los códigos usan más caracteres, por ejemplo aa hasta pp para 16*16=256 colores.

Otros estilos de XPM2 fueron diseñados para ser usados en código fuente en C, por ejemplo:

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

XPM3

El último formato es XPM3, el más utilizado en X Window System desde 1991. La c significa "color", es posible agregar m para salidas "monocromáticas", g para "escalas de grises", y s para "simbólicas", está última, permite adjuste de colores dependiendo de contexto donde se usan. Un código como s border c blue podría ajustarse en un fondo azul.

Si el ancho, la altura, los colores, y los caracteres por pixel contienen seis en vez de cuatro números, los valores adicionales indican la coordenada de un "hotspot", 0 0 es elvértice izquierdo más alto de la caja que contiene el ícono y es el valor por defecto. un "hotspot" es utilizado por los punteros del mouse y aplicaciones similares.

Comparación con otros formatos

Archivo gráfico con la leyenda Blarg

Los siguientes ejemplos comparan un archivo con la leyenda "Blarg" en formatos XBM, XPM y PGM.

Versión en XBM:

#define blarg_xbm_width 16
#define blarg_xbm_height 7
static char blarg_xbm_bits[] = {
  0xec, 0xff, 0xea, 0xff, 0x6c, 0x32, 0xaa,
  0x5a, 0x6c, 0x3a, 0xff, 0x7f, 0xff, 0x9f};

Versión en XPM:

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

Versión en XPM2:

! XPM2
16 7 2 1
* c #000000
. c #ffffff
**..*...........
*.*.*...........
**..*..**.**..**
*.*.*.*.*.*..*.*
**..*..**.*...**
...............*
.............**.

Versión en PGM:

P1
16 7
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1
1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0

Referencias

  1. LeHors, 1996, p. 7
  2. Daniel, Dardailler; Colas Nahaboo and Arnaud Le Hors. «The XPM Story». Consultado el 05-04-2010. 
  3. Kenton Lee (Sept. de 1998). «What is XPM ?». The Motif FAQ. comp.windows.x.motif. 137. Consultado el 05-04-2010. 
  4. LeHors, 1996, p. 8

Enlaces externos