Como usar
- Solte um arquivo .bmp na área de arrastar e soltar, clique para escolher um ou cole uma imagem.
- Em Converter para, escolha PNG para obter um resultado sem perdas e muito menor, ou deixe em Manter o original se o sistema de destino exigir BMP.
- Compare o tamanho original com o tamanho codificado para ver a economia.
- Copie ou baixe o resultado como data URI, Base64 puro, tag img, regra CSS ou imagem Markdown.
O que é um arquivo BMP?
O BMP é o formato de bitmap independente de dispositivo do Windows. Ele armazena os pixels linha por linha, quase sempre sem compressão (existe um modo simples de compressão RLE para imagens de 4 e 8 bits). O tipo MIME é image/bmp, embora alguns sistemas informem image/x-ms-bmp, e a saída em Base64 começa com Qk, as letras BM codificadas.
Sem compressão, o tamanho decorre diretamente das dimensões. Uma imagem de 24 bits com 800 por 600 pixels ocupa cerca de 1,4 MB, e seu Base64 chega perto de 1,9 MB de texto.
Converta para PNG antes de codificar
O PNG também é sem perdas, então um bitmap típico de 24 bits convertido para PNG mantém os pixels exatamente iguais enquanto o arquivo encolhe, muitas vezes a uma fração do tamanho, e bem mais no caso de capturas de tela e gráficos com cores chapadas. Para fotos salvas como BMP, JPEG ou WebP com boa qualidade geram uma string ainda mais curta. Os tamanhos original e codificado exibidos para cada imagem deixam a diferença fácil de ver.
Quando manter o BMP original
Alguns destinatários esperam um bitmap de verdade: softwares antigos do Windows, impressoras de etiquetas e de recibos, pequenos displays controlados por microcontroladores ou arquivos de teste que precisam corresponder a um arquivo byte a byte. Nesses casos, deixe a conversão desativada; a saída em Base64 será então uma cópia exata do arquivo. Todos os principais navegadores exibem imagens data:image/bmp, mas, para páginas web e e-mail, o PNG é o melhor formato.
A mesma conversão em um script, usando Python e 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()
Perguntas frequentes
Por que minha string Base64 de BMP é tão longa?
O BMP armazena cada pixel sem compressão, e o Base64 acrescenta mais um terço. Converter para PNG antes geralmente encurta a string drasticamente, sem perder nenhum detalhe.
Converter BMP para PNG reduz a qualidade?
Não. O PNG é um formato sem perdas, então os pixels continuam os mesmos. Só muda a forma como eles são armazenados.
Os navegadores exibem um URI data:image/bmp?
Sim, Chrome, Edge, Firefox e Safari exibem BMP. Clientes de e-mail e muitas plataformas online lidam com ele de forma menos confiável, então o PNG é a escolha mais segura nesses casos.
O BMP aceita transparência?
Um BMP de 32 bits pode armazenar um canal alfa, mas programas e navegadores o tratam de forma inconsistente. Se você precisa de transparência, converta para PNG ou WebP.