Converter GIF para BMP

Aqui você converte GIF para BMP de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Com perdas As cores se mantêm exatamente iguais. BMP não carrega transparência, então o que estiver recortado é preenchido com a cor de fundo.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só o primeiro quadro é convertido: um GIF animado vira imagem parada.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

O que a conversão de GIF para BMP faz de fato

GIF 36 KBBMP 450 KB 12.4× maior

Uma cena fotográfica — degradês suaves, bordas macias, granulação. Este é o caso para o qual BMP foi feito, ou contra o qual foi feito, e os números mostram qual dos dois. As duas imagens são desenhadas por código e codificadas pelo mesmo conversor que roda nesta página, então os tamanhos são a saída do próprio site.

GIF 8 KBBMP 450 KB 59.9× maior

Fundo transparente e um degradê atravessando a forma. BMP ou mantém os dois, ou mantém um, ou preenche a transparência com uma cor sólida — e é essa diferença que pega as pessoas. As duas imagens são desenhadas por código e codificadas pelo mesmo conversor que roda nesta página, então os tamanhos são a saída do próprio site.

GIF 6 KBBMP 450 KB 72.9× maior

Cor chapada e bordas duras, como numa interface, num gráfico ou num logo. Comportamento bem diferente do da fotografia acima, e o motivo de a resposta ser "depende do que está no arquivo". As duas imagens são desenhadas por código e codificadas pelo mesmo conversor que roda nesta página, então os tamanhos são a saída do próprio site.

Um GIF gasta um byte por pixel, e o bitmap vai gastar três

Esses dois formatos têm quase a mesma idade — 1987 e 1990 — e resolvem o mesmo problema em direções opostas. Um GIF guarda um índice numa paleta de no máximo 256 entradas, ou seja, um byte por pixel antes da compressão LZW apertar ainda mais. O bitmap escrito aqui guarda um trio completo de azul, verde e vermelho para cada pixel, sem compressão nenhuma.

Então o crescimento não é um fator, são dois multiplicados. Três bytes onde o GIF usava um, e nenhuma da economia de LZW que tornou o GIF pequeno em primeiro lugar. Um GIF de 40 KB rotineiramente vira um bitmap dez vezes maior, e numa arte plana com longas sequências de cor idêntica — o material que o GIF comprime melhor — a proporção fica ainda pior.

Calculando o tamanho do bitmap antes de converter

A conta é curta e não tem estimativa nenhuma nela. Multiplique a largura por três para ter os bytes de uma linha, arredonde para o próximo múltiplo de quatro, multiplique pela altura e some 54 bytes de cabeçalho. Um GIF de 480 por 270 dá 1.440 bytes por linha, sem precisar arredondar, 388.800 bytes de pixels e 388.854 no total.

Nada na origem muda esse número. O mesmo bitmap de 480 por 270 sai de uma fotografia bastante dithered e sai de um retângulo vermelho sólido, porque o formato guarda cada pixel literalmente nos dois casos. Essa previsibilidade é o motivo de hardware pedir bitmap: um firmware que lê um consegue alocar o buffer só a partir do cabeçalho.

As linhas correm de baixo para cima, e cada linha é preenchida

Duas convenções no bitmap escrito aqui parecem erro e não são. As linhas são guardadas de baixo para cima na imagem, e os canais dentro de cada pixel são ordenados azul, verde, vermelho em vez do contrário. As duas coisas estão na especificação original e são o que um leitor de arquivos BMP espera encontrar.

A terceira é o preenchimento. Toda linha é completada até um múltiplo de quatro bytes, então uma imagem de 101 pixels de largura escreve 303 bytes de pixel seguidos de um byte de nada, 304 bytes por linha. Código que lê um bitmap assumindo largura vezes três por linha produz uma imagem que desliza na diagonal, o bug mais comum num leitor de BMP escrito à mão.

A animação para no primeiro quadro do GIF

O BMP guarda uma imagem só. Não tem conceito de sequência, atraso ou repetição, então um GIF animado chegando aqui vira o quadro em que ele abre e o resto é descartado — o registro declara isso como a ressalva do par em vez de deixar para ser descoberto.

Para os destinos que pedem bitmap isso raramente é problema, porque um aparelho que quer um BMP quer uma imagem estática por definição. Vale conferir se o primeiro quadro é o que você quer: muitos GIFs abrem numa tela em branco ou num cartão de título antes do conteúdo começar.

Por que 256 cores não deixam o bitmap menor

É razoável esperar que uma imagem com só 256 cores distintas produza um arquivo pequeno, e para um formato com paleta produziria. A especificação de bitmap até permite exatamente isso — um BMP de 8 bits com uma tabela de cor, que mapearia num GIF quase perfeitamente.

Este conversor não escreve um assim. Todo bitmap que ele produz é 24 bits, então um GIF usando seis cores custa os mesmos bytes que uma fotografia das mesmas dimensões. Se o aparelho que você está alimentando exige especificamente um bitmap de 8 bits com paleta em vez de só aceitar um BMP, este arquivo não vai servir, e vale estabelecer isso antes da conversão, não depois de o aparelho recusar.

A cor transparente precisa virar uma cor de verdade

Um GIF pode indicar uma entrada da paleta como transparente. O bitmap escrito aqui não tem canal alfa nenhum — 24 bits, três canais, nada sobrando — então esses pixels precisam receber um valor antes de codificar.

A opção de cor de fundo decide qual é esse valor, e o padrão é branco. Escolher de propósito importa em hardware: um ícone destinado a uma tela com interface preta deveria ser achatado sobre preto, não sobre branco e invertido depois. Onde um sistema espera uma chroma key, ajuste a opção para essa cor exata em vez de confiar num passo posterior.

Reduzindo o GIF antes de escrever o bitmap

Não há controle de qualidade nesta conversão e não poderia haver: sem compressão significa sem compressão, e não há nada para trocar. A única alavanca é a largura máxima, que redimensiona a imagem antes de os pixels serem escritos e portanto muda o tamanho do arquivo de forma quadrática.

Reduzir a largura pela metade divide o bitmap por quatro. Costuma ser o movimento certo quando o alvo é uma tela pequena de qualquer jeito — um painel de 128 pixels de largura não ganha nada com uma origem de 640 pixels, e reduzir aqui em vez de no firmware significa que o aparelho nem precisa manter o buffer maior.

Metadado, do qual um GIF carrega quase nada

Toda conversão raster deste site remove metadado no caminho, sem exceção, e nesta dupla essa regra tem pouco o que fazer. Um GIF não tem bloco EXIF, não tem modelo de câmera, não tem coordenada de GPS; o máximo que costuma carregar é uma extensão de comentário e uma extensão de aplicação deixadas por quem o escreveu.

O formato bitmap não tem onde colocar nada disso de qualquer jeito. O cabeçalho dele descreve dimensões, profundidade de bits e pouco mais, então o que sai são pixels e geometria. Se o GIF veio de um gravador de tela que carimbou o próprio nome num bloco de comentário, esse nome não viaja.

O bitmap é montado na sua própria máquina

O GIF é decodificado pelo próprio suporte de imagem do navegador, e o cabeçalho e as linhas de pixel do bitmap são escritos em JavaScript na mesma aba. Não há servidor no caminho, sem envio e sem conta, e o arquivo some quando a aba fecha.

Isso importa mais do que parece nesta dupla, porque o que as pessoas convertem para BMP costuma ser interno: um gráfico de painel de controle, uma etiqueta de produto, a tela de abertura de um instrumento. Nada disso precisa passar pela infraestrutura de outra pessoa para virar um bitmap.

Como converter GIF para BMP

  1. Solte o seu arquivo GIF nesta página, ou clique para escolher um.
  2. Escolha BMP como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo BMP pronto.

GIF ou BMP: o que muda

GIF comparado com BMP
GIFBMP
Nome completoGraphics Interchange FormatBitmap do Windows
Extensão do arquivo.gif.bmp, .dib
Tipo de mídiaimage/gifimage/bmp
CompressãoSem perdas — nada é descartadoSem compressão
Publicado pela primeira vez19871987
Publicado porCompuServeMicrosoft
EspecificaçãoGIF89a
LicençaPadrão abertoPublicado, não padronizado
Situação hojeAntigo, ainda lido em todo lugarAntigo, ainda lido em todo lugar
Profundidade de bits88
Cor que consegue descreverpaleta indexadaRGB, paleta indexada
Maior imagem65.535 px por lado
Abre no navegadorTodos os navegadoresTodos os navegadores
Considerado no lugarWebP, MP4PNG, TIFF

O que se perde

BMP não tem canal alfa. Um arquivo GIF com transparência sai com essas áreas preenchidas — de branco, se você não indicar outra coisa — e nenhum ajuste de BMP traz a transparência de volta.

BMP guarda uma única imagem parada. De um arquivo GIF animado sobra o primeiro quadro e o resto se perde: a conversão serve para extrair uma imagem, não para levar o movimento junto.

Abrir o resultado

GIMP lê tanto GIF quanto BMP, então dá para comparar o resultado com o original sem um segundo programa.

Tamanho e qualidade

BMP guarda as amostras cruas, então o arquivo cresce bastante sem ganhar nada. Só faz sentido quando um programa do outro lado não aceita GIF, que costuma ser o motivo.

Para que serve cada formato

Os dois miram trabalhos diferentes: GIF em a web, BMP em mover dados entre programas. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

GIF é o formato da CompuServe, publicado em 1987. Registra 8 bits por canal.

BMP vem da Microsoft é de 1987. Microsoft Paint, GIMP e IrfanView leem o formato.

De GIF para BMP: perguntas frequentes

Meu arquivo GIF é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo. O motor deste par específico é jSquash, compilações em WebAssembly dos codecs de imagem de referência; seu navegador baixa isso uma vez e guarda.

Converter GIF para BMP é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez. jSquash é baixado para a sua máquina e roda lá, e por isso não há contador.

Perde qualidade ao converter GIF para BMP?

BMP comprime, então dados se perdem. No ajuste padrão isso não aparece; se você quer garantia, aumente a qualidade. Só o primeiro quadro é convertido: um GIF animado vira imagem parada.

O fundo transparente sobrevive de GIF para BMP?

BMP não tem canal alfa. Um arquivo GIF com transparência sai com essas áreas preenchidas — de branco, se você não indicar outra coisa — e nenhum ajuste de BMP traz a transparência de volta.

Um arquivo GIF animado continua animado em BMP?

BMP guarda uma única imagem parada. De um arquivo GIF animado sobra o primeiro quadro e o resto se perde: a conversão serve para extrair uma imagem, não para levar o movimento junto.

Por que o arquivo BMP é bem maior que o arquivo GIF?

BMP guarda as amostras cruas, então o arquivo cresce bastante sem ganhar nada. Só faz sentido quando um programa do outro lado não aceita GIF, que costuma ser o motivo.

Mais sobre esses formatos

De onde vêm estes números

O que esta página afirma sobre GIF e BMP pode ser conferido, e estes são os documentos que resolvem a questão.