Ícone pequeno (Base64 compensa)
- Entrada
- PNG de 1024 bytes (1 KB)
- Saída esperada
- 1368 caracteres em Base64 (+33%)
Para um ícone assim, os 344 caracteres extras custam menos do que uma requisição HTTP a mais.
Data URI e Base64 em imagens
Um Data URI embute os bytes de uma imagem direto no HTML, CSS ou JS como texto, no formato `data:[tipo-mime];base64,<dados>` definido pela RFC 2397. Isso elimina uma requisição HTTP separada para o arquivo, mas troca esse ganho por um arquivo de texto sempre maior que o binário original, e essa ferramenta calcula exatamente quanto maior antes de você decidir.
Para um ícone assim, os 344 caracteres extras custam menos do que uma requisição HTTP a mais.
A imagem embutida é baixada de novo a cada carregamento da página, junto do HTML ou CSS que a contém.
A ferramenta ignora o nome do arquivo e lê os bytes reais para decidir o tipo MIME.
É uma forma de representar dados binários (como uma imagem) usando apenas caracteres de texto ASCII, no formato data:image/png;base64,XXXX. Isso permite embutir a imagem diretamente no código HTML ou CSS, sem um arquivo separado.
Porque a codificação Base64 representa cada 3 bytes binários com 4 caracteres de texto, um overhead fixo de 33% (4/3), qualquer que seja o formato da imagem original.
Esta ferramenta usa 20.000 caracteres (cerca de 15 KB de imagem original) como o limite prático: abaixo disso, a requisição HTTP economizada costuma valer mais que o overhead de 33%; acima, o arquivo maior e a perda do cache de imagem pesam mais.
Dá nas duas formas: a ferramenta gera o snippet tanto como atributo src de uma tag <img> quanto como valor de background-image no CSS, a partir do mesmo Data URI.
A ferramenta decodifica o Base64 e lê a assinatura de bytes do início do arquivo (por exemplo FF D8 FF para JPEG, ou os 8 bytes iniciais de PNG), em vez de confiar na extensão ou em um nome de arquivo digitado errado.
A codificação e a decodificação acontecem inteiramente no seu navegador. Nenhuma imagem é enviada a qualquer servidor.