BMP: El formato que se niega a morir
Imagina una fábrica en las afueras de Ohio: una cámara Cognex montada en un brazo robótico dispara 60 veces por segundo, capturando el momento exacto en que se coloca una tapa en un frasco de salsa. Cada captura llega a un PC industrial con Windows 7 como un archivo BMP de 6.2 MB. El software de inspección lee la intensidad a nivel de píxel para verificar la alineación de la tapa. Treinta años después, cuando la línea se desmantele, esos BMP seguirán en una copia de seguridad en cinta en algún lado. El formato está muerto en todas partes excepto donde es insustituible, y los lugares insustituibles son sorprendentemente muchos.
BMP (mapa de bits) fue introducido por Microsoft en 1990 con Windows 3.0. Almacena píxeles sin comprimir, uno tras otro, en una estructura tan simple que puedes analizarla con unas 40 líneas de C. Produce archivos enormes. No tiene transparencia en sus variantes más comunes. Es, según cualquier estándar moderno, un formato obsoleto. Y sin embargo, en 2026, BMP sigue siendo el formato de subida requerido para una sorprendente cantidad de software industrial, sistemas gubernamentales y tuberías empresariales heredadas. Aquí es donde vive, por qué sobrevive y cómo manejarlo sin volverte loco.
La realidad técnica de BMP
Un BMP típico se estructura con un encabezado, una tabla de colores (para imágenes indexadas) y una matriz de píxeles sin procesar. No hay compresión por defecto. Un BMP de 1,920 x 1,080 a 24 bits pesa exactamente 6.2 MB — ancho por alto por 3 bytes por píxel, más un pequeño encabezado. La misma imagen como JPG con calidad 85 pesa de 200 a 400 KB. Como WebP, la mitad.
BMP admite 1, 4, 8, 16, 24 y 32 bits por píxel. La variante de 32 bits incluye un canal alfa y transparencia, aunque la mayoría del software trata BMP como opaco. La compresión RLE existe en la especificación, pero rara vez se usa porque prácticamente ningún software la soporta.
Antecedentes: por qué ganó la simplicidad
BMP existe porque Microsoft necesitaba un formato de pantalla que el subsistema GDI de Windows 3.0 pudiera volcar directamente a la memoria de visualización sin necesidad de decodificación. La velocidad importaba más que el espacio en disco cuando los PC de 286 tenían 2 MB de RAM y los disquetes almacenaban 1.44 MB. Una vez tomada esa decisión, todas las herramientas gráficas de Windows usaban BMP por defecto, todas las controladoras de impresoras consumían BMP y todas las utilidades de captura de pantalla producían BMP. El formato se calcificó en infraestructura.
Dónde vive realmente BMP en 2026
- Visión artificial industrial. Los sistemas de cámara Cognex, Keyence y Omron a menudo generan fotogramas sin procesar como BMP porque no hay paso de decodificación: los bytes salen del sensor y llegan al disco. Los bucles de inspección en tiempo real no pueden permitirse una codificación JPG de 5 ms.
- Complementos de imágenes médicas. Algunos sistemas PACS antiguos y máquinas de ultrasonido exportan miniaturas como BMP incluso cuando el formato principal es DICOM.
- Sistemas integrados y microcontroladores. Las pantallas LCD pequeñas controladas por Arduino o ESP32 a menudo esperan BMP porque el decodificador cabe en 2 KB de memoria flash.
- Software Windows heredado. Las versiones antiguas de MS Paint usan BMP por defecto. Algunas herramientas de ingeniería y CAD de los 90 todavía guardan capturas de pantalla como BMP porque así lo ha mostrado siempre el diálogo de archivos.
- Formularios gubernamentales y sistemas de ingreso. Un número sorprendente de portales gubernamentales de EE. UU. y la UE todavía listan BMP como formato de subida aceptado junto con JPG, a menudo una señal de que el código del backend también es de 1998.
- Segmentadores de impresión 3D. Varias impresoras SLA y DLP consumen imágenes de capas como una pila de BMP porque el formato es trivial de decodificar en el chip ARM integrado de la impresora.
Por qué la gente convierte JPG a BMP
Las dos razones más comunes:
- Requisitos de subida que rechazan todo lo demás. Un portal antiguo que solo acepta ".bmp" no es negociable. Convierte y sigue adelante. JPG a BMP maneja esto sin pérdida de calidad en el destino: BMP no tiene pérdida, así que el único límite de calidad es el que ya perdió el JPG original.
- Recursos para pantallas integradas. Un ESP32 que controla un panel TFT de 320x240 quiere un BMP de 24 bits que pueda volcar directamente. Convertir una foto JPG a BMP y redimensionarla a 320x240 da un archivo que el firmware puede cargar en 50 ms.
La conversión en sí es rápida porque no hay codificación de entropía: la salida es básicamente "decodificar el JPG a RGB, escribir el RGB directamente al disco con un encabezado". Un JPG de 12 MP se convierte en un BMP de 36 MB en unos 200 ms.
Por qué la gente convierte BMP a JPG
Más común que lo inverso, porque los archivos BMP son enormes y la mayoría de los sistemas modernos quieren JPG:
- Compartir capturas de pantalla heredadas. Un compañero te envía un BMP de 14 MB por correo. Pásalo por BMP a JPG con calidad 85 y se convierte en 380 KB sin pérdida visible.
- Importar a bibliotecas de fotos modernas. Apple Photos, Lightroom y Google Photos aceptan BMP, pero lo muestran lentamente y desperdician espacio en disco. Convierte al recibirlo.
- Crear una página web a partir de recursos antiguos. Una carpeta de marketing de la era 2003 con fotos de productos en BMP necesita convertirse a JPG para cualquier uso web moderno. Convierte en lote y pásalo por comprimir JPG para un segundo paso.
Paso a paso: normalizar una tubería de entrada BMP
- Inventaria la fuente. Averigua qué produce los BMP: un proveedor, un sensor, un escáner, un portal gubernamental y con qué frecuencia.
- Decide el formato de archivo canónico. PNG para retención sin pérdida, JPG para uso diario, TIFF para originales muy grandes.
- Configura un paso de normalización. Una tarea programada, una tarea de compilación o un manejador de subida que convierta BMP a tu formato de archivo al llegar.
- Verifica con información de imagen. Confirma que las dimensiones, la profundidad de bits y el modelo de color coinciden con lo esperado antes de eliminar.
- Comprime la copia de archivo mediante Comprimir JPG o Comprimir PNG.
- Etiqueta y almacena. Conserva el nombre del archivo original y una marca de tiempo; archiva los BMP originales en almacenamiento frío en lugar de eliminarlos.
- Prueba la ruta de recuperación. Convierte un JPG normalizado de vuelta a BMP mediante JPG a BMP para confirmar que el consumidor heredado acepta tu salida si es necesario.
- Documenta la tubería. Tu yo del futuro no recordará qué directorio contiene qué entrada.
Errores comunes y cómo solucionarlos
- Error: eliminar los BMP fuente inmediatamente. Solución: archívalos en un disco frío barato por si la tubería de conversión tiene un error que descubras más tarde.
- Error: convertir a JPG con calidad 100% y asumir que no tiene pérdida. Solución: usa Comprimir JPG con calidad 90 a 95 para archivo o PNG para verdadera ausencia de pérdida.
- Error: no manejar los BMP indexados de 1 y 8 bits de manera diferente a los de 24 bits. Solución: usa un convertidor que detecte automáticamente la profundidad de bits, o bifurca tu script según
identify -format "%z". - Error: descartar el canal alfa de los BMP de 32 bits. Solución: convierte a PNG, no a JPG, cuando el alfa sea importante.
- Error: mantener los 600 DPI originales cuando el caso de uso requiere 150. Solución: reduce la resolución explícitamente durante la conversión.
- Error: asumir que todo archivo "BMP" es realmente un BMP. Solución: verifica los bytes mágicos; algunos sistemas antiguos etiquetan TIFF y DIB como BMP.
Ejemplos reales
Los Archivos Nacionales de EE. UU. almacenan millones de fotos históricas escaneadas como BMP de 24 bits porque el proyecto de digitalización original a finales de los 90 lo estandarizó. La migración a TIFF continúa desde 2018 y está aproximadamente a la mitad en 2026.
Las impresoras SLA Anycubic y Elegoo consumen capas cortadas como una carpeta de BMP monocromos. Cortadores como ChiTuBox producen esa pila BMP a partir del modelo STL del usuario.
Muchos sitios web de tasadores de propiedades de condados de EE. UU. (el condado de Cook, IL, por ejemplo) aún aceptan fotos de evidencia como BMP, JPG o TIFF. Las presentaciones en otros formatos se descartan silenciosamente del expediente.
Comparación de formatos de un vistazo
| Propiedad | BMP | JPG | PNG | TIFF |
|---|---|---|---|---|
| Sin pérdida | Sí | No | Sí | Sí (LZW) |
| Compresión | Ninguna (normalmente) | Fuerte | Moderada | Moderada |
| Tamaño típico de 12 MP | 36 MB | 3-6 MB | 12-18 MB | 15-25 MB |
| Canal alfa | Variante de 32 bits | No | Sí | Sí |
| Soporte en navegadores web | Parcial | Universal | Universal | Ninguno |
| Complejidad del decodificador | Mínimo | Alto | Moderada | Alto |
El argumento de la compresión sin pérdida y cuándo realmente importa
BMP es sin pérdida, así que a veces la gente argumenta que es "mejor" que JPG para archivo. Esto es técnicamente cierto y prácticamente irrelevante. Si necesitas archivo sin pérdida, tanto PNG como TIFF comprimen sin pérdida. Una foto típica de 12 MP pesa 30 MB como BMP, 18 MB como TIFF sin comprimir, 12 MB como PNG y 8 MB como TIFF con LZW. Básicamente nunca hay un caso en el que BMP supere a esos para archivo.
La única excepción es el caso de uso integrado donde la simplicidad del decodificador importa más que el tamaño del archivo: un microcontrolador tiene mucho disco pero milisegundos de CPU.
Manejar BMP con elegancia en un flujo de trabajo moderno
Si tu flujo de trabajo recibe BMP de vez en cuando de una fuente externa (un proveedor, un escáner, un portal gubernamental), configura un paso de normalización que convierta BMP a PNG para conservación sin pérdida o a JPG para uso diario. El convertidor de imágenes maneja la entrada de múltiples formatos, y la herramienta información de imagen te dirá la profundidad de bits y dimensiones del BMP antes de que te comprometas con un preajuste de conversión.
Para conversiones por lote, magick *.bmp -quality 85 -format jpg output_%d.jpg de ImageMagick maneja una carpeta de BMP en segundos. Usa -quality 90 si son originales que podrías necesitar re-editar; -quality 80 solo para visualización web.
Consejos avanzados
- Usa compresión RLE en la cabecera BMP cuando el firmware de destino lo soporte; reduce el tamaño de archivo para imágenes indexadas entre un 30 y un 70 por ciento.
- Elimina los bytes de relleno finales que algunos escritores BMP añaden para alinear los anchos de fila: ahorra entre un 1 y un 3 por ciento.
- Genera un espejo TIFF más pequeño usando LZW para archivo en almacenamiento frío junto al BMP.
- Usa información de imagen como verificación previa para filtrar los BMP que son solo de 1 bits frente a los de color completo.
- Envuelve la entrada en una carpeta de cuarentena para que un BMP malformado nunca bloquee el flujo de trabajo.
- Comprime a WebP para el consumidor moderno mientras mantienes un archivo BMP para el heredado.
- Ejecuta una suma de verificación en los bytes de la matriz de píxeles, no en todo el archivo: las cabeceras BMP contienen variación de marca de tiempo.
Preguntas frecuentes
¿Por qué mi BMP es tan grande?
No está comprimido. Un BMP de 24 bits a 1080p siempre pesa exactamente 6.2 MB; eso es el formato, no tu configuración.
¿Puedo abrir un BMP en una Mac?
Sí. Vista previa abre BMP de forma nativa desde al menos macOS 10.6.
¿Photoshop guarda BMP?
Sí — Archivo > Guardar como > BMP. El diálogo también te permite elegir la profundidad de bits.
¿Cuál es la diferencia entre BMP y DIB?
DIB es la representación en memoria; BMP es el envoltorio en disco para ella. La mayoría de las herramientas los tratan como intercambiables.
¿Debería convertir BMP antiguos a JPG o PNG?
JPG para uso diario, PNG si necesitas retención sin pérdida. PNG siempre es más pequeño que BMP.
¿Por qué mi BMP se ve mal después de la conversión?
Probablemente sea un desajuste de profundidad de bits: los BMP de 16 bits usan canales 5-5-5 o 5-6-5 que algunos convertidores malinterpretan.
¿Es BMP un riesgo de seguridad?
Moderado. Históricamente, los decodificadores BMP han tenido vulnerabilidades; mantén actualizadas tus herramientas de conversión.
Trampas de la profundidad de color
Las variantes de BMP importan más de lo que sugiere la extensión. Un BMP de 1 bits de una máquina de fax es solo blanco y negro. Un BMP indexado de 8 bits tiene una paleta de 256 colores y puede producir una salida posterizada al convertirlo. Un BMP de 16 bits usa canales de color 5-5-5 o 5-6-5 y altera ligeramente los colores durante la conversión si no lo manejas correctamente. Un BMP de 24 bits es el más común y se comporta como una imagen RGB normal. Un BMP de 32 bits tiene alfa, pero la mayoría de los decodificadores lo ignoran.
Si tu herramienta de conversión produce colores que se ven mal, verifica la profundidad de bits de origen; casi siempre es la causa.
Qué hacer realmente con los BMP que tienes
Audita el montón. Si es una carpeta de proyecto puntual, convierte en lote a JPG con calidad 85, archiva los BMP originales en un disco frío y sigue adelante. Si es un flujo de entrada continuo, crea el paso de normalización una vez y no toques BMP nunca más. El convertidor de BMP a JPG es la puerta de entrada; comprimir JPG es el paso de optimización; información de imagen es tu comprobación de cordura de que la conversión preservó las dimensiones esperadas. Para trabajo entre formatos, el convertidor de imágenes maneja todas las variantes. Si tu archivo heredado incluye negativos escaneados o RAW, enrútalos a través de RAW a JPG.
BMP no morirá en 2026, ni en 2030, ni probablemente nunca; demasiado código industrial depende de él. Pero no tienes por qué dejar que contamine tu flujo de activos moderno. Convierte en el límite, archiva el original, y el resto de tu flujo de trabajo se mantiene en JPG, WebP o lo que realmente quieras usar.
La estructura del encabezado BMP para los curiosos
Entender BMP a nivel de bytes ayuda a depurar salidas de conversión extrañas. El archivo comienza con un encabezado BMP de 14 bytes: dos bytes mágicos (0x42 0x4D, "BM"), un tamaño de archivo de 4 bytes, dos campos reservados y un desplazamiento de 4 bytes a los datos de píxeles. Luego viene un encabezado DIB (40 bytes para la variante BITMAPINFOHEADER más común) que describe ancho, alto, profundidad de bits, método de compresión y tamaño de paleta. Después, opcionalmente, viene una tabla de paleta de colores. Finalmente, la matriz de píxeles, almacenada de abajo arriba por fila.
Las filas se rellenan hasta un límite de 4 bytes, que es la fuente de variaciones sutiles en el tamaño del archivo entre herramientas de conversión. Un BMP de 17 píxeles de ancho y 24 bits tiene 51 bytes por fila de datos de píxeles más 1 byte de relleno, totalizando 52 bytes por fila. Un convertidor ingenuo que olvide el relleno producirá un archivo corrupto que se abre pero se muestra con rayas diagonales. Si ves ese patrón en una salida, el codificador está roto; cambia de herramienta.
BMP y los flujos de aprendizaje automático
Algunos conjuntos de datos de entrenamiento de visión por computadora se distribuyen como BMP porque la propiedad sin pérdida garantiza que ningún artefacto de compresión confunda al modelo. KITTI, ciertos benchmarks de imágenes médicas y algunos conjuntos de datos de detección de defectos industriales son nativos de BMP. Si trabajas con un conjunto de datos así, trata los BMP como la fuente canónica: convertirlos a JPG y viceversa introducirá pequeñas diferencias numéricas que pueden importar en los márgenes del rendimiento del modelo.
Para inferencia, la historia es inversa: los modelos de producción casi siempre aceptan entrada JPG o PNG porque la infraestructura de implementación está construida para ellos. Si tus datos de entrenamiento son BMP y tus entradas de inferencia son JPG, valida que el nivel de calidad JPG que usas en inferencia (normalmente 85+) no mueva la distribución de entrada lo suficiente como para afectar la precisión. La comprobación más simple es puntuar el conjunto de validación como BMP y nuevamente después del redondeo JPG; diferencias superiores al 1 por ciento sugieren que necesitas mayor calidad o inferencia nativa BMP.
Migrar un archivo BMP industrial
Si has heredado una carpeta de 100,000 BMP de una línea de inspección de hace una década, el plan de migración es mecánico. Programa un pase que recorra el árbol de directorios, lea cada BMP mediante ImageMagick o Pillow, escriba un PNG (sin pérdida) junto a él, valide que las dimensiones y la profundidad de bits coincidan mediante información de imagen y registre una suma de verificación. Mueve los originales a almacenamiento en frío etiquetados con la fecha de migración. Todo el trabajo para 100,000 archivos toma de 4 a 8 horas en una sola máquina y reduce el almacenamiento total aproximadamente un 65 por ciento.
Para los consumidores del archivo (los analistas que necesitan ver imágenes individuales), genera miniaturas JPG junto a los maestros PNG mediante BMP a JPG en un pase paralelo. Las miniaturas se cargan al instante en los navegadores y los maestros PNG siguen siendo la referencia para cualquier comparación sensible a la calidad.
BMP e interoperabilidad del portapapeles de Windows
Si alguna vez has copiado una imagen de una aplicación de Windows y la has pegado en otra, el formato subyacente del portapapeles suele ser CF_DIB o CF_BITMAP, ambos basados en DIB, esencialmente BMP sin encabezado. Por eso, pegar una captura de pantalla en un editor de imágenes nuevo a menudo aparece como RGB de 24 bits independientemente de la fuente: el transporte del portapapeles eliminó cualquier codificación específica del formato. La implicación práctica es que los flujos de trabajo de captura de pantalla a través del portapapeles pasan por un paso BMP oculto, y las capturas de pantalla muy grandes pueden inflar brevemente la memoria.
Para herramientas de desarrollo que capturan contenido de pantalla mediante programación (grabadores de pruebas, escáneres de accesibilidad, API de grabación de pantalla), la salida suele ser inicialmente BMP y luego se recodifica a JPG o PNG antes de mostrarse al usuario. La elección de codificación ocurre en el código, y elegir JPG con una calidad sensata (85) mantiene los tamaños de archivo manejables para miles de artefactos de captura de pantalla en un conjunto de pruebas de CI.
BMP en herramientas de actualización de firmware
Los fabricantes de dispositivos integrados envían herramientas de actualización de firmware que a menudo incluyen una imagen de "pantalla de inicio": la imagen que ves mientras el dispositivo se está actualizando. Esa imagen es casi siempre un BMP porque el cargador de arranque del firmware puede decodificarla con 200 líneas de C y sin bibliotecas. Si estás diseñando un dispositivo integrado personalizado y necesitas personalizar la pantalla de inicio, tu flujo de activos termina en la conversión de JPG a BMP con la resolución y profundidad de bits exactas del panel.
Error común: el panel puede esperar color de 16 bits (5-6-5) en lugar de 24 bits. Los editores de imágenes estándar no exportan BMP de 16 bits por defecto. ImageMagick lo maneja con magick in.jpg -define bmp:format=bmp3 -depth 16 out.bmp. Verifica el resultado cargando el archivo en el emulador de firmware antes de flashear hardware real; hacerlo mal en hardware real puede bloquear el dispositivo.