X PixMap
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 | ||
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
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
- ↑ LeHors, 1996, p. 7
- ↑ Daniel, Dardailler; Colas Nahaboo and Arnaud Le Hors. «The XPM Story». Consultado el 05-04-2010.
- ↑ Kenton Lee (Sept. de 1998). «What is XPM ?». The Motif FAQ. comp.windows.x.motif. 137. Consultado el 05-04-2010.
- ↑ LeHors, 1996, p. 8
Enlaces externos
- Le Hors, Arnaud (1 de febrero de 1996). XPM Manual: The X PixMap Format (PDF). Groupe Bull. Consultado el 5 de abril de 2010.
- Código fuenta para Xpm 3.4K: ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz
- X PixMap con XCB
- X PixMap con Xlib
- Mac OS X XPM apple event (example)
- X11 version 6.8.0 vulnerability 537878
- Gratuito Conversor de XPM online