Imagem para Base64 é uma técnica que codifica dados binários de imagem como uma string de texto ASCII. Base64 usa 64 caracteres imprimíveis (A-Z, a-z, 0-9, +, /) para representar dados binários, converte cada 3 bytes em 4 caracteres Base64 e adiciona = como padding no final. Todo o processo segue o padrão RFC 4648.
**Princípio de codificação**: Base64 divide cada 3 bytes (24 bits) em quatro grupos de 6 bits, cada um mapeado para um caractere do alfabeto Base64. Se o número de bytes não for divisível por 3, 1-2 caracteres = de padding são adicionados ao final. Isso explica por que o tamanho aumenta cerca de 33% (4/3 ≈ 1.33).
**Otimização com Web Worker**: esta ferramenta usa Web Workers para executar a codificação em uma thread do navegador separada da thread principal. ArrayBuffer.transfer() permite transferência zero-copy para o Worker e evita bloqueios. Mesmo ao processar imagens com vários MB, a UI permanece fluida e o progresso aparece em tempo real.
**Privacidade e segurança**: diferentemente de ferramentas que exigem upload de imagens para um servidor, esta ferramenta roda inteiramente no navegador. Os dados da imagem não passam por servidores de terceiros, algo especialmente importante para imagens sensíveis, como documentos ou contratos.
**Casos de uso**: imagens Base64 são comuns em CSS Sprites (redução de requisições HTTP), templates de e-mail HTML (evitar bloqueio de imagens por clientes de e-mail), transmissão API de dados binários e extensões de navegador ou apps de arquivo único quando recursos externos não podem ser referenciados.