Ferramenta do navegador

Compressor de imagem Base64

Decodifique uma imagem Base64 localmente, ajuste dimensões, qualidade ou formato e mantenha uma saída padrão para img src, CSS, JSON e APIs.

Processamento local · Sem upload · Sem conta

Cole Base64 puro com espaços opcionais ou uma data:image/...;base64,... completa. URLs remotas não são aceitas.

Configurações de compressão

Resultado

Preview original

Escolha ou cole uma imagem.

Preview do resultado

Escolha ou cole uma imagem.

Informações originais

Informações do resultado

Base64 é codificação, não compressão

Base64 padrão representa três bytes com quatro caracteres: comprimento exato 4 × ceil(n / 3) e aumento contínuo de cerca de 33,3%. A Data URL ainda inclui o prefixo MIME.

A ferramenta reduz primeiro os bytes da imagem: decodifica, altera dimensões, qualidade ou formato quando útil e gera Base64 padrão novamente.

Gzip cria outra saída

Aplicar Gzip ao Base64 gera dados binários que precisam ser descompactados antes da exibição. Codificá-los outra vez não cria uma Data URL de imagem comum.

JPEG, PNG e WebP já são formatos comprimidos. Menos pixels, qualidade com perda, remoção de metadados ou troca de formato podem ajudar, sem garantia de perda zero ou redução.

Tamanho-alvo sem aumentar

JPEG e WebP usam busca de qualidade com limite fixo. Se não bastar, as dimensões diminuem em rodadas limitadas, preservando a proporção.

Se o Base64 padrão não tiver menos caracteres, os bytes originais são mantidos. Um resultado menor que não atinge o alvo em KB é identificado com clareza.

Processamento local e limites

Tudo permanece na aba: sem upload, URL remota, telemetria ou biblioteca externa. Limites de 20 MiB e 16 megapixels protegem o navegador.

SVG, GIF, ICO e WebP animado são recusados para não executar conteúdo nem perder quadros. Auto preserva transparência; JPEG exige fundo confirmado. Canvas não é antivírus.

Quando evitar Base64

É útil para recursos pequenos e autocontidos. Imagens grandes funcionam melhor como Blob URL, arquivo separado ou upload binário, com cache e transferência próprios.

Bytes e caracteres Base64 são comparados separadamente. Remover o prefixo data: não conta como compressão.

Falhas comuns explicadas

  • Caracteres, padding ou comprimento Base64 inválidos.
  • O MIME declarado difere dos magic bytes.
  • A imagem excede 20 MiB, 16 megapixels ou não pode ser decodificada.
  • A entrada é animada, multiquadro, SVG ou já está muito otimizada.

Comandos equivalentes

Use o runtime ou shell já disponível. Valide entradas não confiáveis e não imprima binários diretamente no terminal.

Python

from PIL import Image
from io import BytesIO
import base64
image = Image.open(BytesIO(base64.b64decode(value)))
out = BytesIO(); image.save(out, 'WEBP', quality=82)
result = base64.b64encode(out.getvalue()).decode('ascii')

JavaScript

const blob = new Blob([bytes], { type: mime });
const bitmap = await createImageBitmap(blob);
ctx.drawImage(bitmap, 0, 0, width, height);
const output = await new Promise(r => canvas.toBlob(r, 'image/webp', 0.82));
bitmap.close();

Shell

printf '%s' "$VALUE" | base64 --decode > input.png
magick input.png -resize '1920x1920>' -quality 82 output.webp
base64 --wrap=0 output.webp

Padrões e referências oficiais

Perguntas sobre compressão de imagem Base64

Dá para comprimir o Base64?

Compressão genérica cria outro formato binário. Para manter Base64 de imagem padrão, otimize os bytes e recodifique.

Funciona direto em img src?

Sim. Raw é Base64 padrão e Data URL usa data:image/...;base64.

Como chegar a 100 KB?

Escolha Custom e 100 KB. A busca de qualidade e dimensões é limitada; nem toda imagem alcança o alvo.

A qualidade diminui?

Pode diminuir. Redimensionamento e qualidade JPEG/WebP são com perda; PNG pode não ficar menor.

Por que aumenta cerca de 33%?

Três bytes viram quatro caracteres. O total exato é 4 × ceil(n / 3).

A imagem é enviada?

Não. Análise, Canvas, preview, cópia e download são locais.

Gzip antes ou depois?

Para transporte, comprima a resposta HTTP externa quando fizer sentido. Gzip não funciona como Data URL sem descompactação.