Articulo de referencia

Mapa de píxeles X

X PixMap ( XPM ) es un formato de archivo de imagen utilizado por el sistema X Window , creado en 1989 por Daniel Dardailler y Colas Nahaboo en el Bull Research Center de Sophia...

X PixMap ( XPM ) es un formato de archivo de imagen utilizado por el sistema X Window , creado en 1989 por Daniel Dardailler y Colas Nahaboo en el Bull Research Center de Sophia Antipolis , Francia, y posteriormente mejorado por Arnaud Le Hors. [2] [3]

Está destinado principalmente a crear mapas de píxeles de iconos y admite píxeles transparentes . Derivado de la sintaxis XBM anterior , es un archivo de texto simple en formato XPM2 o ​​de una sintaxis de lenguaje de programación C , que se puede incluir en un archivo de programa C. [2]

Historia

XPM1

El primer formato XPM (1989) es relativamente similar al formato XBM. [a] En comparación con XBM, utiliza definiciones de macros y variables adicionales para los colores indexados y reemplaza bits con caracteres para describir la imagen. La siguiente es una imagen en blanco y negro en el formato XPM de 1989.

#define XFACE_format 1 
#define XFACE_width 48 
#define XFACE_height 48 
#define XFACE_ncolors 2 
#define XFACE_chars_per_pixel 1 
carácter estático * XFACE_colors [] = { "a" , "#ffffff" , "b" , "#000000" }; carácter estático * XFACE_pixels [] = { "abaabaababaaabaababaabaabaabaabaabaabaabaaababaaab" , // y así sucesivamente para 48 filas con 48 píxeles    
 
 

    


XPM2

XPM2 (1990) simplifica el formato eliminando todo el código C. [b] [c] La estructura se simplifica a

!XPM2
<Valores>
<Colores>
<Píxeles>
<Extensiones opcionales>
  • La sección de valor describe la dimensión general de la imagen de manera similar a las #definedeclaraciones.
  • La sección de color define los valores y un nuevo concepto de "tipo" de color. Los tipos pueden ser c para "color", m para salida "monocromática", g para "escala de grises" y s para "simbólico", lo que explica lo que se supone que debe hacer un color definido.
  • Los píxeles y las extensiones opcionales permanecen como en el formato original.

El archivo anterior, con ancho 48, alto 4, 2 colores y 1 carácter por píxel, se convierte en:

!XPM2
48 4 2 1
es #FFFFFF
por favor #000000
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab

Bandera

Además de los códigos hexadecimales, los colores pueden ser cualquiera de los nombres de colores de X11 . Además, Noneindica transparencia. [4] [5]

La función "simbólica" permite ajustar los colores según el contexto en el que se utilicen. Un código como este s border c bluepodría ajustarse sobre un fondo azul.

Codificación de múltiples colores

Se sabe que una herramienta utiliza solo de a a p para 16 colores, y cambia de aa a dp para 64 colores, pero aún lee codificaciones de caracteres individuales para 64 colores; compare Base64 .

Con más colores, los códigos utilizan más caracteres, p. ej. , 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 centro de dos píxeles adyacentes dabc . Se permiten espacios como código de color, pero pueden ser una mala idea según el editor de texto utilizado. Sin códigos de control, barra invertida y comillas (necesarias en XPM1 y XPM3), hay 128 − 33 − 2 = 93 caracteres ASCII disponibles para códigos de color de un solo carácter.

Ejemplo simplificado: 90 caracteres US-ASCII podrían organizarse en nueve conjuntos no superpuestos de 10 caracteres. De este modo, cadenas inequívocas de nueve caracteres podrían establecer el color de cada píxel mediante 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 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

El formato actual y último es XPM3 (1991). Reintroduce el contenedor C, pero en lugar de mostrar explícitamente la estructura de un archivo, las cadenas almacenadas son esencialmente idénticas a las de XPM2.

/* XPM */ 
static char * XFACE [] = { "48 4 2 1" , "ac #ffffff" , "bc #000000" , " abaabaababaaabaabababaabaabaabaabaaababaaab" , " abaabaababaaabaababaabaabaabaabaabaaababaabaaab" , "abaabaababaaabaababaabaabaabaabaaababaaab" , abaabaababaaabaabababaabaabaababaabaaababaabaaab" };     








Si la línea de "valores" contiene seis números en lugar de cuatro, los valores adicionales indican las coordenadas de un "punto de acceso", donde 0 0 es la esquina superior izquierda de un cuadro que contiene el icono y el valor predeterminado. Un "punto de acceso" se utiliza para punteros de ratón y aplicaciones similares.

Comparación con otros formatos

Archivo Blarg abierto en la ventana del programa

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 
carácter estático test_bits [] = { 0x13 , 0x00 , 0x15 , 0x00 , 0x93 , 0xcd , 0x55 , 0xa5 , 0x93 , 0xc5 , 0x00 , 0x80 , 0x00 , 0x60 };    
           
  
Blarg.xpm (XPM2) renderizado por XnView

Versión XPM2:

!XPM2
16 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:

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 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0

Soporte de aplicaciones

ACDSee , Amaya , CorelDRAW , GIMP , ImageMagick , IrfanView (complemento de formatos), PaintShop Pro , PMView , Photoshop (complementos) y XnView , entre otros, admiten XPM. [6] [7] Gravatar y picons también admiten XPM. [8] [9]

En 2005 se corrigió una vulnerabilidad de libXpm en X11 [10] y tres más en 2023 [11].

La versión 3.3 o posterior de FFmpeg puede decodificar XPM. [12]

Véase también

  • Netpbm  – Kit de herramientas para manipulación de imágenes
  • CLUT  – En gráficos de computadora, un conjunto finito de colores disponiblesPáginas que muestran descripciones breves de los objetivos de redireccionamiento

Notas

  1. ^ Para obtener una descripción de este formato en lugar del manual (que no se encuentra en Internet), utilice el código fuente del convertidor xpm-contrib (anteriormente parte de libXpm propiamente dicho) (xpm2ppm, xpm1to3, xpm1to2c).
  2. ^ También es aceptable utilizar sintaxis de lenguaje de programación para matrices de cadenas, pero solo se ha comprobado la sintaxis C. La sintaxis "XPM2 C" se convirtió finalmente en el único formato en la versión 3 de XPM.
  3. ^ Para obtener referencias sobre esta sintaxis, consulte https://gitlab.freedesktop.org/xorg/lib/libxpm/-/blob/master/NEWS.old y la sección "historial" del manual de libXpm 3.4.

Referencias

  1. ^ .xpm Tipo MIME no registrado en IANA
  2. ^ ab Le Hors, Arnaud (1996-02-01). Manual XPM: El formato X PixMap (PDF) . Groupe Bull . págs. 7–8 . Consultado el 1 de enero de 2014 .
  3. 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 .
  4. ^ "Preguntas frecuentes sobre XPM". Fundación X.Org . 1996. Consultado el 12 de marzo de 2016 .
  5. ^ Murray, James D.; Vanryper, William (1996). Resumen del formato de archivo XPM . O'Reilly & Associates. ISBN 1-56592-161-5. Recuperado el 1 de enero de 2014 . {{cite book}}: |work=ignorado ( ayuda )
  6. ^ Nir Sofer. "Extensión .xpm" . Consultado el 12 de enero de 2014 .
  7. ^ "Tipo de archivo: X Windows Pixmap". Asociación de archivos de Windows . Microsoft . 2013. Consultado el 12 de enero de 2014 .
  8. ^ Gravatar no oficial, sin XPM2
  9. ^ Steve Kinzler (2005). "Picons Archive" (Archivo de picones) . Consultado el 6 de enero de 2014. Los picones se encuentran en formato XBM monocromo o en formato GIF y XPM en color .
  10. ^ "La biblioteca libXpm contiene múltiples vulnerabilidades de desbordamiento de enteros". US-CERT . 2005-10-06. VU#537878 . Consultado el 2014-01-01 .
  11. ^ "Aviso de seguridad de X.Org: Problemas al manejar archivos XPM en libXpm anterior a la versión 3.5.15". 17 de enero de 2023.
  12. ^ "FFmpeg 3.3 "Hilbert"". FFmpeg . 2017-04-13 . Consultado el 2017-10-28 . Descodificador XPM

Véase también

  • libXpm - Biblioteca de formatos de archivos de imagen X Pixmap (XPM)
Obtenido de "https://es.wikipedia.org/w/index.php?title=X_PixMap&oldid=1225614982"