Cómo se usa
- Suelta un archivo .bmp en la zona de arrastre, haz clic para elegir uno o pega una imagen.
- Elige PNG en Convertir a para obtener un resultado sin pérdida y mucho más pequeño, o mantén el BMP si el sistema de destino lo exige.
- Compara el tamaño original con el codificado para ver el ahorro.
- Copia o descarga el resultado como data URI, Base64 puro, etiqueta img, regla CSS o imagen de Markdown.
¿Qué es un archivo BMP?
BMP es el formato de mapa de bits independiente del dispositivo de Windows. Guarda los píxeles fila a fila, casi siempre sin compresión (existe un modo sencillo de codificación por longitud de serie para imágenes de 4 y 8 bits). El tipo MIME es image/bmp, aunque algunos sistemas indican image/x-ms-bmp, y la salida Base64 empieza por Qk, las letras BM codificadas.
Sin compresión, el tamaño se deduce directamente de las dimensiones. Una imagen de 24 bits de 800 por 600 píxeles necesita alrededor de 1,4 MB, y su Base64 ronda 1,9 MB de texto.
Convierte a PNG antes de codificar
PNG también es un formato sin pérdida, así que un mapa de bits típico de 24 bits convertido a PNG conserva exactamente sus píxeles mientras el archivo ocupa a menudo varias veces menos, y muchísimo menos en capturas de pantalla y gráficos planos. Para las fotos guardadas como BMP, JPEG o WebP con buena calidad dan una cadena todavía más corta. Los tamaños original y codificado que se muestran para cada imagen permiten ver la diferencia fácilmente.
Cuándo conservar el BMP original
Algunos receptores esperan un mapa de bits real: software antiguo de Windows, impresoras de etiquetas y de recibos, pantallas pequeñas controladas por microcontroladores o datos de prueba que deben coincidir byte a byte con un archivo. En esos casos, no actives ninguna conversión; la salida Base64 será entonces una copia exacta del archivo. Todos los navegadores principales pueden mostrar imágenes data:image/bmp, pero para páginas web y correo electrónico PNG es mejor formato.
La misma conversión en un script, con Python y Pillow:
from PIL import Image
import base64, io
buf = io.BytesIO()
Image.open('scan.bmp').save(buf, 'PNG')
uri = 'data:image/png;base64,' + base64.b64encode(buf.getvalue()).decode()
Preguntas frecuentes
¿Por qué mi cadena Base64 de BMP es tan larga?
BMP guarda cada píxel sin compresión, y Base64 añade otro tercio encima. Convertir antes a PNG suele acortar muchísimo la cadena sin perder ningún detalle.
¿Convertir BMP a PNG reduce la calidad?
No. PNG es un formato sin pérdida, así que los píxeles no cambian. Solo cambia la forma de almacenarlos.
¿Pueden los navegadores mostrar un URI data:image/bmp?
Sí, Chrome, Edge, Firefox y Safari muestran BMP. Los clientes de correo y muchas plataformas en línea lo manejan con menos fiabilidad, así que en esos casos PNG es la opción más segura.
¿BMP admite transparencia?
Un BMP de 32 bits puede guardar un canal alfa, pero los programas y los navegadores lo tratan de forma desigual. Si necesitas transparencia, convierte a PNG o WebP.