Si te has topado con un BMP hace poco, probablemente fue una sorpresa: una captura de una herramienta vieja, la salida de un escáner, un archivo veinte veces más grande de lo que esperabas. BMP es el formato que se niega a desaparecer, y entender por qué pesa tanto explica a la vez su obsolescencia y sus usos restantes.
BMP viene de bitmap, mapa de bits, y el nombre es literalmente el diseño. El archivo es un mapa de bits: una cabecera breve que describe el ancho, el alto y la profundidad de color, y a continuación los píxeles, uno tras otro, en orden.
Microsoft lo introdujo con las primeras versiones de Windows como formato de imagen nativo del sistema. No necesitaba ser ingenioso: necesitaba ser algo que cualquier programa pudiera leer y escribir sin una biblioteca de compresión, en una época en que escaseaban tanto la memoria como la paciencia para el código complejo.
Esa simplicidad es toda la historia. Un programa que no sabe nada de compresión de imágenes puede escribir un BMP, y leerlo igual.
Un BMP normalmente va sin comprimir. Cada píxel ocupa su espacio completo en el archivo, sea o no idéntico al píxel de al lado.
La aritmética no perdona. Una imagen de 1920 × 1080 a 24 bits por píxel son 1920 × 1080 × 3 bytes: unos 6 MB, siempre, sea cual sea el contenido. Una foto de una multitud y una foto de una pared blanca producen exactamente el mismo peso.
Compáralo con la misma imagen como JPG a calidad razonable — quizá 400 KB — o como PNG, que comprime la pared blanca hasta casi nada. El tamaño de un BMP no es función de la imagen; es función únicamente de las dimensiones.
El formato define un modo de codificación por longitud de secuencia para profundidades de color bajas, pero se usa poco y apenas ayuda con contenido fotográfico.
Es sin pérdida. No se descarta nada. El píxel que escribiste es el píxel que lees, cosa que también es cierta de PNG y TIFF pero no de JPG.
Es trivial de procesar. No hay paso de descompresión. Un programa puede leer píxeles directamente del archivo con un puñado de líneas, lo que sigue importando en sistemas embebidos, trabajo gráfico de bajo nivel y cualquier sitio donde una biblioteca de compresión no esté disponible o no sea bienvenida.
Todo programa de Windows lo abre. Cuarenta años de compatibilidad no son poco.
Software antiguo de escáner a veces usa BMP por defecto, con la lógica razonable de que es sin pérdida y legible en todas partes — y la consecuencia irrazonable de que un escaneo de veinte páginas se convierte en un gigabyte.
Utilidades de captura de pantalla del ecosistema Windows todavía escriben BMP de vez en cuando.
Sistemas embebidos e industriales — paneles de control de máquinas, instrumentos médicos, terminales de punto de venta antiguos — usan BMP con frecuencia para los gráficos de interfaz, porque el código de pantalla puede leer los píxeles directamente del archivo.
Modificaciones de juegos y recursos de software antiguo también usan BMP para texturas y sprites por la misma razón.
Convertir BMP a PNG merece mención aparte porque es la conversión sin inconveniente alguno. Ambos son sin pérdida, así que los píxeles son idénticos; PNG simplemente los comprime. No pierdes nada y a menudo ahorras un 60–80%.
Si te han pasado un BMP, conviértelo. Si un programa está produciendo BMP, cambia su configuración de salida. La única razón para conservar uno es que un software concreto lo exija — y si ese es el caso, ya lo sabes.