X PixMap ( XPM ) es un formato de archivo de imagen utilizado por X Window System , creado en 1989 por Daniel Dardailler y Colas Nahaboo que trabajaban en Bull Research Center en Sophia Antipolis , Francia, y luego mejorado por Arnaud Le Hors. [2] [3]
Extensión de nombre de archivo | .xpm |
---|---|
Tipo de medio de Internet | imagen / x-xpixmap [1] |
Desarrollado por | Investigación BULL |
Tipo de formato | Formatos de archivo de imagen |
Extendido desde | XBM |
¿ Formato abierto ? | sí |
Está diseñado principalmente para crear mapas de píxeles de iconos y admite píxeles transparentes . Derivado de la sintaxis XBM anterior , es un archivo de texto sin formato en formato XPM2 o de una sintaxis de lenguaje de programación C , que se puede incluir en un archivo de programa C. [2]
XPM
El formato XPM es una matriz de cadenas compuesta por seis secciones diferentes de la siguiente manera:
carácter estático * < nombre_variable > [] = { < Valores > < Colores > < Píxeles > < Extensiones > };
Ésta es una imagen en blanco y negro en el primer formato XPM (1989).
#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 [] = { "abaabaababaaabaabababaabaabaabaababaabaaababaabaaab" , // y así sucesivamente para 48 filas con 48 píxeles
La sección de valores contiene el ancho, alto, número de colores y número de caracteres por píxel.
XPM2
XPM2 simplifica el formato eliminando todo el código C. Un ejemplo:
! XPM248 4 2 1ac #FFFFFFbc # 000000abaabaababaaabaabababaabaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaabaababaabaaababaabaaab
Este es un archivo XPM2 con ancho 48, alto 4, 2 colores y 1 carácter por píxel. Una herramienta se conoce el uso de solamente una a p durante 16 colores, el cambio a AA hasta dp de 64 colores, pero aún así la lectura de la codificación de caracteres individuales de 64 colores; comparar Base64 .
Con más colores, los códigos utilizan más caracteres, por ejemplo, aa hasta pp para 16 × 16 = 256 colores. Esto es menos útil para los editores de texto, porque una cadena ab podría ser en realidad el medio de dos píxeles adyacentes dabc . Se permiten espacios como código de color, pero puede ser una mala idea dependiendo del editor de texto utilizado. Sin códigos de control, barra invertida y comillas (necesario en XPM1 y XPM3) 128 - 33 - 2 = 93 caracteres ASCII están disponibles para códigos de color de un solo carácter.
Ejemplo simplificado: se pueden organizar 90 caracteres US-ASCII en nueve conjuntos de 10 caracteres que no se superponen. Por lo tanto, cadenas inequívocas de nueve caracteres podrían establecer el color de cada píxel por su índice de paleta XPM con hasta 10 9 =1 000 000 000 de colores (en comparación con GIF , que solo admite 256).
Para XPM2, está claro cuántas líneas pertenecen a la imagen: dos líneas de encabezado, la segunda línea de encabezado que anuncia el número de códigos de color (2 líneas en el ejemplo anterior) y filas (altura 4 en el ejemplo anterior), por ejemplo, 2 + 2 + 4 = 8 líneas.
XPM3
Los otros estilos XPM1 y XPM3 están diseñados para usarse como están en el código fuente de C, por ejemplo:
/ * XPM * / carácter estático * XFACE [] = { / * * / / * * / "48 4 2 1" , / * * / "ac #ffffff" , "bc # 000000" , / * * /
íxeles>"abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" };
El último formato es XPM3, el formato común utilizado para el sistema X Window desde aproximadamente 1991. La c significa "color", es posible agregar m para salida "monocromática", g para "escala de grises" y s para "simbólico". explicando lo que se supone que debe hacer un color definido.
Además de los nombres de los colores X11, el nombre None
indica transparencia. [4] [5]
La función "simbólica" permite ajustar los colores según el contexto en el que se utilizan. Código que s border c blue
podría ajustarse sobre un fondo azul.
Si el ancho, el alto, los colores y los caracteres por línea de píxel contienen seis en lugar de cuatro números, los valores adicionales indican las coordenadas de un "punto de acceso", 0 0 es la esquina superior izquierda de un cuadro que contiene el icono y el valor predeterminado. Se utiliza un "punto de acceso" para los punteros del mouse y aplicaciones similares.
Comparación con otros formatos
El siguiente código muestra el mismo archivo blarg en los formatos XBM , XPM y PBM .
Versión XBM:
#define test_width 16 #define test_height 7 static char test_bits [] = { 0x13 , 0x00 , 0x15 , 0x00 , 0x93 , 0xcd , 0x55 , 0xa5 , 0x93 , 0xc5 , 0x00 , 0x80 , 0x00 , 0x60 };
Versión XPM2:
! XPM216 7 2 1* c # 000000. c #ffffff** .. * ...........*. *. * ...........** .. * .. **. ** .. ***. *. *. *. *. * .. *. *** .. * .. **. * ... **............... *............. **.
Versión XPM3:
/ * XPM * / static char * blarg_xpm [] = { "16 7 2 1" , "* c # 000000" , ". C #ffffff" , "** .. * .......... . " , " *. *. * ........... " , " ** .. * .. **. ** .. ** " , " *. *. *. *. *. * .. *. * " , " ** .. * .. **. * ... ** " , " ............... * " , ". ............ **. " };
Archivo PBM:
P116 71 1 0 0 1 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 0 0 0 0 0 0 0 0 0 0 01 1 0 0 1 0 0 1 1 0 1 1 0 0 1 11 0 1 0 1 0 1 0 1 0 1 0 0 1 0 11 1 0 0 1 0 0 1 1 0 1 0 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
Soporte de aplicaciones
ACDSee , Amaya , CorelDRAW , GIMP , ImageMagick , IrfanView (plugin de formatos), PaintShop Pro , PMView , Photoshop (plugins) y XnView, entre otros, son compatibles con XPM. [6] [7] Gravatar y picons también son compatibles con XPM. [8] [9]
En 2005 se solucionó una vulnerabilidad libXpm de X11 . [10] FFmpeg versión 3.3 o posterior puede decodificar XPM. [11]
Ver también
- X Window System (X11) y nombres de colores X11
- PBM (mono), PGM (escala de grises), PPM (color), PNM (cualquiera)
Referencias
- ^ .xpmtipo MIME no registrado en IANA
- ↑ a b Le Hors, Arnaud (1 de febrero de 1996). Manual XPM: el formato X PixMap (PDF) . Groupe Bull . págs. 7-8 . Consultado el 1 de enero de 2014 .
- ^ Daniel Dardailler (15 de julio de 1996). "La historia de XPM" . Colas Nahaboo y Arnaud Le Hors. Archivado desde el original el 7 de junio de 1997 . Consultado el 1 de enero de 2014 .
- ^ "Preguntas frecuentes sobre XPM" . Fundación X.Org . 1996 . Consultado el 12 de marzo de 2016 .
- ^ "Resumen de formato de archivo XPM" . Enciclopedia de formatos de archivos de gráficos, segunda edición . ISBN 1-56592-161-5. Consultado el 1 de enero de 2014 .
- ^ Nir Sofer. "Extensión .xpm" . Consultado el 12 de enero de 2014 .
- ^ "Tipo de archivo: X Windows Pixmap" . Asociación de archivos de Windows . Microsoft . 2013 . Consultado el 12 de enero de 2014 .
- ^ Gravatar no oficial, sin XPM2
- ^ Steve Kinzler (2005). "Archivo de Picones" . Consultado el 6 de enero de 2014 .
los picones están en formato XBM monocromo o en formatos XPM y GIF en color
- ^ "La biblioteca libXpm contiene múltiples vulnerabilidades de desbordamiento de enteros" . US-CERT . 2005-10-06. VU # 537878 . Consultado el 1 de enero de 2014 .
- ^ "FFmpeg 3.3" Hilbert " " . FFmpeg . 2017-04-13 . Consultado el 28 de octubre de 2017 .
Decodificador XPM