Conversor de PNG para Base64

Codifique arquivos PNG em Base64 sem perder a transparência. Solte ou cole um PNG e copie-o como data URI, tag img do HTML, fundo CSS ou imagem Markdown.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Solte um PNG na área de arrastar e soltar, clique para escolher um arquivo ou cole uma captura de tela da área de transferência.
  2. Deixe Converter para em Manter o original para codificar os bytes originais do PNG, ou defina uma Largura máxima para reduzir uma imagem grande.
  3. Compare o tamanho original com o tamanho codificado exibido para a imagem.
  4. Copie ou baixe a saída em data URI, Base64 puro, tag img, CSS ou Markdown.

PNG e Base64

O PNG (Portable Network Graphics, tipo MIME image/png) é um formato raster sem perdas com canal alfa completo, o que o torna a escolha habitual para ícones, logotipos, diagramas e capturas de tela. Todo arquivo PNG começa com a mesma assinatura de 8 bytes, então todo data URI de PNG começa do mesmo jeito: data:image/png;base64,iVBORw0KGgo....

O Base64 não mexe nos pixels. Decodificar a string devolve um arquivo idêntico byte a byte, com as mesmas cores e as mesmas áreas transparentes.

Bons usos para data URIs de PNG

  • Pequenos ícones de interface e logotipos que precisam de fundo transparente.
  • Capturas de tela dentro de relatórios HTML autossuficientes, relatórios de bugs ou documentação exportada.
  • Gráficos e QR codes gerados em um servidor e devolvidos em uma resposta JSON.
  • Imagens criadas com canvas.toDataURL(), que por padrão já produz data URIs de PNG.

Com fotos, a história é outra. O PNG as armazena sem perdas e os arquivos ficam grandes; JPEG ou WebP geram uma string bem mais curta.

Reduza o PNG antes de codificar

Cada byte que você remove do PNG economiza cerca de 1,33 caractere de Base64. Antes de tudo, passe o arquivo por um otimizador como oxipng ou zopflipng (sem perdas) ou pngquant (reduz a paleta). Confira também o tamanho em pixels: um ícone exportado com o triplo do tamanho de exibição geralmente pode ser reduzido com a opção Largura máxima.

Converter para WebP mantém a transparência e costuma gerar um arquivo bem menor. Converter para JPEG remove a transparência, e as áreas transparentes viram uma cor sólida. Recodificar para PNG no navegador não otimiza a compressão, então o resultado pode ficar maior que um original bem otimizado; compare os tamanhos antes de copiar.

Como usar a saída

<img src="data:image/png;base64,iVBORw0KGgo..." width="24" height="24" alt="Settings">

.icon-settings {
  background: url("data:image/png;base64,iVBORw0KGgo...") no-repeat center / 24px 24px;
}

# Linha de comando: GNU coreutils / macOS
base64 -w 0 icon.png
base64 -i icon.png

Perguntas frequentes

O Base64 mantém a transparência do PNG?

Sim. O Base64 codifica os bytes do arquivo sem alterá-los, então o canal alfa é preservado. A transparência só se perde se você converter a imagem para JPEG.

Por que toda string Base64 de PNG começa com iVBORw0KGgo?

Esses caracteres são a forma em Base64 da assinatura de arquivo do PNG. Se uma string que deveria ser um PNG começa de outro jeito, ela é de outro formato ou está corrompida.

Posso colar uma captura de tela diretamente?
Sim. Copie uma captura de tela e cole-a na página. Os navegadores geralmente entregam capturas de tela coladas como PNG, então você obtém um resultado data:image/png.
Até que tamanho vale a pena incorporar um PNG em Base64?

Uma regra prática comum é de poucos kilobytes, até cerca de 10 KB. Imagens maiores ficam melhor como arquivos separados, que o navegador pode armazenar em cache e carregar em paralelo.