Se você esbarrou num BMP recentemente, provavelmente foi uma surpresa: uma captura de uma ferramenta antiga, a saída de um scanner, um arquivo vinte vezes maior do que você esperava. O BMP é o formato que se recusa a sumir, e entender por que ele é tão grande explica ao mesmo tempo sua obsolescência e seus usos remanescentes.
BMP vem de bitmap, mapa de bits, e o nome é literalmente o projeto. O arquivo é um mapa de bits: um cabeçalho curto descrevendo largura, altura e profundidade de cor, seguido dos pixels, um após o outro, em ordem.
A Microsoft o introduziu com as primeiras versões do Windows como formato de imagem nativo do sistema. Ele não precisava ser esperto — precisava ser algo que qualquer programa pudesse ler e escrever sem uma biblioteca de compressão, numa época em que tanto memória quanto paciência para código complexo eram escassas.
Essa simplicidade é a história inteira. Um programa que não sabe nada sobre compressão de imagem consegue escrever um BMP, e ler do mesmo jeito.
Um BMP normalmente é sem compressão. Cada pixel ocupa seu espaço cheio no arquivo, seja ou não idêntico ao pixel ao lado.
A aritmética não perdoa. Uma imagem de 1920 × 1080 a 24 bits por pixel são 1920 × 1080 × 3 bytes — cerca de 6 MB, toda vez, independentemente do conteúdo. Uma foto de uma multidão e uma foto de uma parede branca produzem exatamente o mesmo tamanho.
Compare com a mesma imagem como JPG em qualidade razoável — talvez 400 KB — ou como PNG, que comprime a parede branca até quase nada. O tamanho de um BMP não é função da imagem; é função apenas das dimensões.
O formato define um modo de codificação por comprimento de sequência para profundidades de cor baixas, mas ele é pouco usado e quase não ajuda em conteúdo fotográfico.
É sem perdas. Nada é descartado. O pixel que você escreveu é o pixel que você lê de volta — o que também vale para PNG e TIFF, mas não para JPG.
É trivial de processar. Não há etapa de descompressão. Um programa pode ler pixels direto do arquivo com um punhado de linhas, o que ainda importa em sistemas embarcados, trabalho gráfico de baixo nível e qualquer lugar onde uma biblioteca de compressão não exista ou não seja bem-vinda.
Todo programa de Windows abre. Quarenta anos de compatibilidade não é pouco.
Software antigo de scanner às vezes usa BMP por padrão, com a lógica razoável de ser sem perdas e legível em todo lugar — e a consequência irrazoável de uma digitalização de vinte páginas virar um gigabyte.
Utilitários de captura de tela do ecossistema Windows às vezes ainda escrevem BMP.
Sistemas embarcados e industriais — painéis de controle de máquinas, instrumentos médicos, terminais de venda antigos — usam BMP com frequência para gráficos de interface, porque o código de exibição pode ler os pixels direto do arquivo.
Modificações de jogos e recursos de software antigo também usam BMP para texturas e sprites pelo mesmo motivo.
Converter BMP para PNG merece menção especial porque é a conversão sem desvantagem nenhuma. Os dois são sem perdas, então os pixels são idênticos; o PNG apenas os comprime. Você não perde nada e muitas vezes economiza 60–80%.
Se te entregaram um BMP, converta. Se um programa está produzindo BMPs, mude a configuração de saída dele. A única razão para manter um é um software específico exigir — e se for esse o caso, você já sabe.