¿Qué es el formato de archivo XPM?
Un archivo .xpm almacena una imagen ráster en el formato X PixMap - un formato de texto plano con colores indexados nativo de X Window System. A diferencia de la mayoría de los formatos de imagen, un archivo XPM es también código fuente C válido: declara una matriz de cadenas estáticas que los programas en C y C++ pueden incluir mediante #include directamente, sin necesidad de un paso de carga de imagen independiente.
XPM3, la versión actual y la única ampliamente utilizada, comienza con el comentario ASCII /* XPM */ en el desplazamiento de byte cero, seguido de una definición de matriz en C. La primera cadena de la matriz codifica las dimensiones de la imagen, el recuento de colores y cuántos caracteres ASCII representan cada píxel (1-4). Las cadenas posteriores definen una tabla de colores, mapeando esos códigos de caracteres a nombres de colores de X11 (como cornflowerblue) o valores hexadecimales RGB (#RRGGBB). La transparencia se expresa mapeando un código de píxel al nombre especial None - un mecanismo que precede a la transparencia alfa de PNG por varios años.
Debido a que el formato es ASCII puro, los archivos .xpm pueden ser controlados por versiones, comparados con «diff» y generados programáticamente sin herramientas binarias. El tamaño del archivo crece linealmente con el recuento de píxeles, lo que hace que el formato sea poco práctico para fotografías pero muy adecuado para iconos pequeños y mapas de bits de interfaz de usuario.
XPM sigue siendo el formato de icono nativo para muchos kits de herramientas de X11 como Motif y el antiguo GTK. Los escritorios Linux modernos prefieren SVG o PNG para los iconos, pero las aplicaciones X11 todavía suelen incluir alternativas en XPM. GIMP, ImageMagick, XnView e IrfanView soportan el formato en sistemas modernos.
Seguridad y protección
RIESGO: LOWXPM es un formato ASCII de texto plano; no puede contener código ejecutable ni macros. Los archivos XPM malformados podrían, en teoría, provocar errores en las bibliotecas de análisis (existen CVE históricos en libXpm en sistemas X11), pero las versiones modernas parcheadas no son vulnerables. El riesgo para los usuarios cotidianos es insignificante.
Detalles del formato
en pocas palabrasProgramas que abren archivos XPM
Detalles técnicos
especificación profunda| Codificación de archivo | Texto ASCII plano (seguro para 7 bits; también código fuente C válido) |
| Firma de archivo | /* XPM */ en el desplazamiento de byte 0 (XPM3); los archivos XPM2 comienzan con ! XPM2 |
| Modelo de color | Paleta indexada; de 1 a 4 caracteres ASCII imprimibles por píxel se mapean a entradas de color |
| Especificación de color | Nombres de colores X11 (ej. cornflowerblue) o valores hexadecimales #RRGGBB por entrada de paleta |
| Transparencia | El nombre de color X11 «None» mapea un código de píxel a transparencia total (sin byte de canal alfa separado) |
| Compresión | Ninguna - cada píxel se almacena como 1-4 caracteres ASCII literales |
| Versiones del formato | XPM1 (1989, macros de C monocromáticas), XPM2 (1990, datos independientes), XPM3 (1991, sintaxis de C - actual) |
| Paleta máxima | Hasta 65.536 colores indexados simultáneos |
| Tipo MIME | image/x-xpixmap |
| Dimensiones | Sin límite estricto; el tamaño del archivo crece linealmente con el recuento de píxeles (cada píxel = bytes ASCII según caracteres_por_píxel) |
| Integración en C | El contenido del archivo puede incluirse mediante #include directamente en el código fuente C/C++ y compilarse sin un cargador |
| Lanzado | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| Última versión | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.xfree86.org |
Conversiones de XPM
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos XPM.