Ferramenta de Conversão de Imagem Base64
Converta entre imagens e codificação Base64, suporta arrastar e soltar e visualização em tempo real
Arraste imagem aqui, ou clique para selecionar arquivo
Suporta JPG, PNG, GIF, WebP, SVG e mais
O que é Codificação de Imagem Base64?
A ferramenta de imagem em Base64 converte arquivos de imagem em texto Base64 ou data URLs, e também decodifica essas strings para exibir a imagem novamente. Ela é útil para ícones pequenos, placeholders, modelos de e-mail, fundos CSS, testes de API e demonstrações em que enviar um arquivo separado seria incômodo. Base64 não é compressão: normalmente aumenta o tamanho dos dados e pode prejudicar o cache em fotos grandes ou recursos repetidos. Use a conversão para inspecionar e depurar antes de escolher entre dados incorporados, CDN ou uma URL de imagem comum.
Como usar
Como usar
- Arraste ou clique para enviar a imagem; o tipo e as dimensões são detectados automaticamente
- Escolha o formato de saída: Data URL (pronto para uso em código) ou Base64 puro
- Clique no botão de copiar para colar o resultado codificado onde precisar
- Para a conversão inversa, cole a string Base64 e clique em converter para baixar a imagem
Base64 para Imagem
- Cole uma data URL ou uma string Base64 bruta na caixa de entrada e converta para visualizar a imagem decodificada antes de baixar.
- Se a decodificação falhar, verifique se o texto Base64 está completo e se o prefixo data:image/... está corretamente formado.
Imagem para Base64
- Escolha Data URL quando o resultado for colado diretamente em HTML ou CSS, e Base64 puro quando outro sistema já armazena o tipo MIME em separado.
- Mantenha as imagens em Base64 pequenas; imagens grandes aumentam o tamanho do texto em cerca de um terço e podem tornar payloads de HTML, CSS ou JSON mais difíceis de manter.
Casos de uso
Princípio técnico
Uma imagem codificada em Base64 é um data URI conforme definido na RFC 2397: o prefixo de esquema data:, o tipo MIME como image/png, o literal ;base64 e depois o payload construído com o alfabeto de 64 caracteres A-Z, a-z, 0-9, +, /, com = como preenchimento terminal. A codificação pega o fluxo binário de três bytes de cada vez e emite quatro caracteres, de modo que o payload cresce por um fator fixo de 4/3 (aproximadamente 33%) mais um ou dois caracteres de preenchimento quando o número de bytes não é múltiplo de três.
No navegador, a codificação começa com FileReader.readAsDataURL, que processa o arquivo pelo mesmo pipeline e retorna a URL data: completa, pronta para ser usada em um <img src> ou em um url() de background-image no CSS. As primitivas btoa e atob, que trabalham apenas com strings, operam em payloads já binários (apenas latin-1, portanto bytes binários precisam ser convertidos via Uint8Array). A decodificação de volta para uma imagem visualizável passa por atob para um Uint8Array, depois para um Blob com o tipo MIME original, e o handle URL.createObjectURL se torna um recurso HTTP normal e recuperável.
O trade-off prático não é largura de banda, mas cache. Cada ocorrência do payload é duplicada onde quer que o HTML, CSS ou JSON apareça, então o recurso não pode ser cacheado separadamente, não pode ter seu próprio ETag e é rebaixado a cada documento pai. Regras estritas de Content-Security-Policy também bloqueiam data: URIs, a menos que 'data:' esteja explicitamente listado em img-src ou style-src. Desde que a multiplexação HTTP/2 foi implementada, incorporar ícones pequenos raramente supera uma requisição separada, então a regra moderna é incorporar apenas abaixo de ~2 KB e manter imagens principais e sprites reutilizáveis como arquivos cacheáveis.
- Esquema Data URI: formato RFC 2397 data:[<mime>][;base64],<payload>; a vírgula é obrigatória e é a falha de cópia mais comum.
- Sobrecarga de codificação: 3 bytes binários se tornam 4 caracteres ASCII, então o payload cresce por um fator de 4/3 (~33%) mais até 2 caracteres de preenchimento '='.
- APIs do navegador: FileReader.readAsDataURL para arquivos; btoa/atob para payloads já em texto (apenas latin-1, portanto binário precisa de uma ponte Uint8Array).
- Caminho de decodificação: atob → Uint8Array → new Blob([buf], {type}) → URL.createObjectURL fornece uma URL de recurso recuperável normal em vez de uma string congelada.
- Problema com CSP: uma política img-src ou default-src estrita bloqueia data: a menos que a palavra-chave esteja explicitamente listada, o que silenciosamente quebra imagens incorporadas em produção.
- Trade-off de cache: dados incorporados não têm ETag ou entrada de cache independente, então a multiplexação HTTP/2 geralmente supera a incorporação para qualquer coisa acima de ~2 KB.
Exemplos
Uso em HTML
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" alt="pixel transparente 1x1" width="16" height="16" />Uso em CSS
.icon-search {
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTYgMmE0IDQgMCAxIDAgMi4yNCA3LjMzbDMuMjEgMy4yMSAxLjQyLTEuNDItMy4yMS0zLjIxQTQgNCAwIDAgMCA2IDJ6Ii8+PC9zdmc+');
background-size: contain;
}Transmissão em API JSON
POST /api/v1/avatar
Content-Type: application/json
{
"userId": 10086,
"avatar": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAUA..."
}
}
// Observação: Base64 aumenta o payload em ~33%; para arquivos > 100KB, prefira multipart/form-data.Perguntas frequentes
A imagem é enviada para algum servidor?
Não. A imagem é lida pela API FileReader e codificada em Base64 no seu navegador. Os bytes nunca saem do seu dispositivo. Acompanhe a aba Network durante a conversão para confirmar.
Por que a string Base64 fica cerca de 33% maior que o arquivo?
O Base64 representa 3 bytes de entrada como 4 caracteres ASCII, então o tamanho codificado = ceil(file_size / 3) * 4. Isso dá cerca de 33% de overhead, o custo de representar dados binários como texto imprimível.
Como uso o resultado em HTML ou CSS?
Use uma data URI: <img src="data:image/png;base64,..."> em HTML ou background-image: url(data:image/png;base64,...) em CSS. A página gera a data URI completa para você. Útil para pequenos recursos inline, mas aumenta o tamanho do HTML/CSS e contorna o cache de imagens do navegador.
Qual é o limite de tamanho para inlinear vs. linkar?
Abaixo de cerca de 5 KB, inlinear geralmente vale a pena (economiza uma requisição HTTP). Acima disso, o arquivo deve ser um recurso separado por questões de cache. Acima de cerca de 50 KB, inlinear infla bastante seu HTML. Cada ferramenta de build usa um limite diferente; o webpack usa 8 KB por padrão.
Posso decodificar uma string Base64 de volta para imagem?
Sim. Cole uma data URI ou Base64 puro (com tipo MIME image/*) e a página reconstrói a imagem e oferece download. Útil quando você encontra uma imagem inline em código-fonte e quer o arquivo original.
SVG e GIFs animados são suportados?
Sim. SVG pode ser codificado diretamente ou com texto codificado em URL (que é mais curto que Base64 para SVG-XML). GIFs animados são codificados como uma única string Base64; o resultado continua animando. WebP, AVIF e outros formatos modernos funcionam do mesmo jeito.
Devo codificar fotos grandes em Base64 para enviar por e-mail?
O próprio e-mail já codifica anexos em Base64 via MIME, então você não precisa pré-codificar. Colar uma string Base64 no corpo do e-mail só deixa a mensagem maior e ilegível na maioria dos clientes. Anexe o arquivo normalmente.
Ferramentas relacionadas
Recortar imagem
Ferramenta online gratuita para recortar imagens. Recorte, rotação e espelhamento com proporções predefinidas (1:1, 16:9, 4:3) e entrada precisa em pixels. Exporte para PNG, JPEG ou WebP. Todo o processamento ocorre no navegador — nada é enviado para o servidor.
Ferramenta de Compressão de Imagens
Ferramenta de compressão de imagem online gratuita suportando formatos JPEG, PNG, WebP com qualidade e dimensões ajustáveis. Processamento local baseado em navegador, privacidade protegida.
Ferramenta de Gravação de Tela
Gravador de tela online gratuito. Grave tela, janela ou aba do navegador com áudio opcional. Sem software necessário, download instantâneo de vídeo, proteção de privacidade baseada em navegador.
Divisor de imagem em grade
Ferramenta online gratuita para dividir uma imagem em grade 3×3. Ideal para Instagram, WeChat e outras redes sociais. Processamento local no navegador.
Ferramenta de Marca d'Água
Ferramenta de marca d'água em imagem online gratuita. Adicione marcas d'água de texto ou imagem com posição, opacidade e tamanho ajustáveis. Processamento local baseado em navegador, privacidade protegida.
Ferramenta de Criação de Foto de ID
Criador de fotos de identificação online gratuito com remoção de fundo por IA. Suporta padrões europeus (foto de identificação EU, passaporte EU, etc.), gera fotos de identificação padrão com um clique. Processamento local no navegador protege a privacidade.
