En gráficos de computadora , el sistema X Window utilizó X BitMap ( XBM ), un formato de imagen binaria de texto simple , para almacenar mapas de bits de cursores e íconos utilizados en la GUI de X. [3] El formato XBM fue reemplazado por XPM , que apareció por primera vez para X11 en 1989. [4]
Los archivos XBM difieren notablemente de la mayoría de los archivos de imagen en que toman la forma de archivos fuente de C. Esto significa que se pueden compilar directamente en una aplicación sin ningún paso de preprocesamiento, pero también los hace mucho más grandes que sus datos de píxeles sin procesar. Los datos de imagen se codifican como una lista de valores de bytes separados por comas, cada uno escrito en la notación hexadecimal de C, '0x13' por ejemplo, de modo que se utilizan múltiples caracteres ASCII para expresar un solo byte de información de imagen. [5]
Los datos XBM consisten en una serie de matrices de caracteres estáticos sin signo que contienen los datos de píxeles monocromos . Cuando el formato era de uso común, un XBM aparecía normalmente en los encabezados (archivos .h) que incluían una matriz por imagen almacenada en el encabezado. El siguiente fragmento de código C ejemplifica el archivo XBM Blarg que se muestra en el panel de la derecha:
#define test_width 16 #define test_height 7 carácter estático sin signo bits de prueba [] = { 0x13 , 0x00 , 0x15 , 0x00 , 0x93 , 0xcd , 0x55 , 0xa5 , 0x93 , 0xc5 , 0x00 , 0x80 , 0x00 , 0x60 };
En lugar del encabezado de formato de archivo de imagen habitual, los archivos XBM tienen dos o cuatro declaraciones #define. Las primeras dos #defines especifican la altura y el ancho del mapa de bits en píxeles. Las segundas dos, si las hay, especifican la posición de cualquier punto de acceso dentro del mapa de bits. (En el caso de cursores de mapa de bits, el "punto de acceso" se refiere a la posición del "punto" del cursor, generalmente en 0,0.)
Los datos de imagen XBM consisten en una línea de valores de píxeles almacenados en una matriz estática. Debido a que un solo bit representa cada píxel (0 para blanco o 1 para negro), cada byte de la matriz contiene la información de ocho píxeles , y el píxel superior izquierdo del mapa de bits está representado por el bit bajo del primer byte de la matriz. Si el ancho de la imagen no coincide con un múltiplo de 8, se ignoran los bits adicionales en el último byte de cada fila.
Algunos navegadores web admiten la visualización de imágenes XBM como un remanente de los primeros días de la World Wide Web , cuando XBM era el formato de archivo de imagen mínimo no propietario. El navegador web Arena tenía soporte completo desde la versión 0.3.34 (25 de julio de 1997). [6] La compatibilidad con XBM se eliminó de Internet Explorer 6 , Mozilla Firefox 3.6 , [7] y navegadores basados en WebKit . [8] Hay una fuerte indicación de que Chromium (y, por lo tanto, también Google Chrome ) no admite XBM. [9] La documentación de Opera 2.12 y 6.0 indica que XBM era compatible al menos anteriormente. [10] [11]
Algunos visores/conversores de imágenes, por ejemplo, XnView , FFmpeg e IrfanView , admiten XBM. [12] Un XBM de 48×48 se puede convertir a Ikon y, eventualmente, a X-Face con herramientas Netpbm . [13]
A pesar de haber sido reemplazado por el formato XPM , XBM todavía es utilizado por algunos gestores de ventanas modernos pero ligeros como Openbox para definir imágenes de botones simples en la barra de título de una ventana, como los botones de minimización/iconificar, restaurar y maximizar. [14] XBM también se utiliza en el procesamiento integrado (microcontroladores) para mostrar los iconos utilizados en las GUI. [15] ImageMagick [16] admite la conversión de imágenes tanto a como desde XBM. GIMP puede utilizarse para crear o modificar imágenes utilizando el formato XBM, y también admite la conversión de imágenes a y desde el formato XBM.
Los picones se encuentran en formato XBM monocromo o en formato GIF y XPM en color.