Conversor de base64 para imagem

Cole texto base64 —bruto ou em data URI— e receba a imagem de volta com formato, dimensões e tamanho. A decodificação é toda local.

A string é decodificada localmente com atob. Nada é enviado e o preview é montado na memória.

Como funciona

É a metade decodificadora do fluxo: pega texto e o transforma de volta em pixels. A entrada é limpa (espaços, aspas e invólucros soltos removidos), decodificada com o atob nativo do navegador em bytes brutos e farejada quanto ao formato antes de renderizar um preview <img> a partir de uma data URI em memória. Nada é enviado — cada passo é manipulação local de string e bytes.

Anatomia da data URI
Uma data URI completa é data:<mime>;base64,<payload>. Se o prefixo estiver presente, o tipo MIME declarado é confiado primeiro e só o payload após a vírgula é decodificado. Se você colar apenas o payload, o MIME é inferido — as duas formas produzem a mesma imagem.
Farejamento MIME por magic bytes
Sem tipo declarado, os bytes decodificados são comparados a assinaturas conhecidas: FF D8 FF é JPEG, 89 50 4E 47 (iVBOR) é PNG, R0lGOD é GIF, um chunk RIFF que começa com UklGR trazendo WEBP no offset 8 é WebP, e 42 4D (Qk0) é BMP. O que não corresponde é reportado como desconhecido, mas continua baixável.
Espaços em branco e padding
Base64 embrulhado em código costuma trazer quebras de linha, indentação ou aspas ao redor. O limpador remove espaços e valida o alfabeto restante (A-Z a-z 0-9 + / =); o padding = ausente é restaurado antes da decodificação, e uma string que ainda falha no atob é marcada como inválida em vez de meio decodificada.

Perguntas frequentes

Por que base64 deixa a imagem maior?

Base64 codifica cada 3 bytes brutos em 4 caracteres ASCII, então o texto fica cerca de 33% maior que o arquivo binário. Um JPEG de 90 KB vira uma string de uns 120 KB. Esse overhead é o preço de embutir dados binários em formatos de texto como CSS, JSON ou HTML.

Devo embutir imagens como data URI ou servir como arquivo?

Regra prática: ícones e sprites pequenos que precisam aparecer no primeiro paint se inlinam bem e economizam uma requisição. O resto geralmente funciona melhor como arquivo de verdade — cache separado, sem 33% de inchaço na folha de estilo, e data URIs dentro de CSS não são comprimidas tão bem quanto o binário original por gzip/Brotli.

O preview não renderizou — o que houve?

Ou a string não é realmente uma imagem (os bytes decodificados não batem) ou é um formato que o navegador não exibe. O decodificador ainda mostra a contagem de bytes e permite baixar o resultado bruto com nome .bin para inspecionar em outras ferramentas. Confira se você colou o payload inteiro e se o prefixo data:, quando existia, está intacto.

Qual extensão o download usa?

A que a detecção de formato escolher: .jpg, .png, .gif, .webp ou .bmp, com base no prefixo data URI ou nos magic bytes. Se o formato não for reconhecido, o arquivo baixa como image.bin — renomeie quando souber o que é.

Algo é enviado para um servidor?

Não. A decodificação usa o atob nativo do navegador e o preview é renderizado de uma data URI em memória. Sua string base64 nunca sai da aba, e a ferramenta funciona offline.