Enviar um arquivo
  1. base64hub
  2. Ferramentas de imagem
  3. JPG para Base64

JPG para Base64

Arraste um JPG ou JPEG e receba o Base64 dele ou um URI data:image/jpeg. Fotos de celular são grandes, então dá para reduzi-las e remover os dados EXIF, GPS incluído, antes de codificar.

Grátis sem cadastro, sem limites Local nada é enviado EXIF remove GPS e dados da câmera Atualizado 27 de out. de 2026
Arraste uma imagem aqui, cole ou selecione
Entrada –Saída –Tamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como converter um JPG para Base64

  1. Arraste um arquivo .jpg ou .jpeg, escolha-o no seletor de arquivos ou cole uma imagem copiada com Ctrl+V.
  2. Para fotos tiradas direto da câmera ou do celular, defina Largura máx. (por exemplo 1200) e ajuste a Qualidade. O padrão é 85%.
  3. Marque Remover metadados (EXIF) se a foto for compartilhada ou publicada.
  4. Escolha Saída como: Data URI é o padrão, Base64 puro é o que a maioria das APIs quer. Depois clique em Copiar saída.

A prévia mostra as dimensões em pixels e, depois da recodificação, o novo tamanho do arquivo, então dá para testar algumas configurações e ver o número cair.

O que há no Base64 de um JPG

Todos os arquivos JPEG começam com o marcador SOI FF D8 FF, então todos começam com /9j/ em Base64. Os caracteres seguintes indicam qual cabeçalho vem depois:

O arquivo começa comO Base64 começa comOrigem típica
FF D8 FF E0 + JFIF/9j/4AAQSkZJRgeditores de imagem, exportações para web, a maioria dos conversores
FF D8 FF E1 + Exif/9j/4 e depois caracteres variáveiscâmeras e celulares (bloco EXIF primeiro)
FF D8 FF DB/9j/2wcodificadores enxutos ou que removem metadados

Um JPEG de câmera traz um bloco EXIF com o modelo do aparelho, a hora da captura, a orientação e, se a localização estava ligada, as coordenadas de GPS. O Base64 não esconde nada disso. Quem decodifica a string com o Base64 para JPG recebe o arquivo original com os metadados intactos.

Reduzir fotos antes de codificar

Uma foto de celular moderna tem vários megabytes. Em Base64 ela cresce mais um terço, o que é demais para uma requisição JSON, um arquivo CSS ou um e-mail HTML, e lento em qualquer outro lugar.

Duas configurações fazem a maior parte do trabalho:

  • Largura máx. define a largura máxima em pixels. Cortar a largura pela metade reduz o número de pixels a um quarto.
  • Qualidade controla a compressão JPEG. Ela vale sempre que a foto é recodificada, ou seja, quando Largura máx., um formato em Converter para ou Remover metadados (EXIF) está definido. Entre 75% e 85% a diferença é difícil de ver numa foto, enquanto o arquivo fica bem menor que em 95–100%.

Recodificar um JPEG sempre perde um pouco de detalhe, porque ele é decodificado e compactado de novo. Faça isso uma vez, a partir do original, e evite passar o resultado pelo conversor uma segunda vez.

O JPEG não tem transparência. Se você converter para JPEG um PNG ou WebP com fundo transparente, as partes transparentes ficam brancas. Mantenha PNG ou WebP quando precisar do canal alfa.

Onde o Base64 de JPG é usado

  • Upload de fotos por APIs JSON, incluindo modelos de IA com visão que descrevem ou analisam imagens. Muitos deles reduzem imagens grandes do lado deles, então mandar um JPEG menor acelera a requisição sem perda visível.
  • Miniaturas e placeholders inline em HTML, como uma prévia desfocada de 20 pixels de largura exibida enquanto a imagem completa carrega.
  • Documentos de arquivo único, por exemplo um relatório HTML com algumas fotos embutidas.

Para fotos grandes num site, um arquivo de imagem normal continua sendo melhor: ele pode ficar em cache, ser carregado sob demanda e servido em vários tamanhos com srcset.

Redimensionar e codificar em Python

O Pillow redimensiona e recodifica a foto em poucas linhas, e a biblioteca padrão cuida do Base64. O Pillow não copia o EXIF para o novo arquivo a menos que você o passe explicitamente, então isso também remove os metadados:

import base64, io
from PIL import Image

with Image.open("photo.jpg") as im:
    im.thumbnail((1024, 1024))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=80)

b64 = base64.b64encode(buf.getvalue()).decode("ascii")

Mais sobre leitura de arquivos e streaming em Base64 em Python.

Problemas comuns

  • A foto aparece girada. Muitos celulares gravam os pixels na orientação do sensor e põem a rotação numa tag EXIF. Os navegadores atuais aplicam essa tag, e quando a ferramenta redesenha uma foto ela mantém a orientação visível. Softwares que ignoram o EXIF podem mostrar a orientação bruta.
  • O Base64 ficou mais longo que o esperado. Confira o tamanho da entrada no medidor. Uma foto “pequena” vinda de um mensageiro ainda pode ter 3000 pixels de largura.
  • Uma API rejeita a imagem. Confirme se ela quer o prefixo data:image/jpeg;base64, ou Base64 puro, e envie image/jpeg como tipo, não image/jpg.

Perguntas frequentes

No data URI é image/jpg ou image/jpeg?

image/jpeg. image/jpg não é um tipo registrado. Os navegadores mostram a imagem mesmo assim porque analisam os bytes, mas APIs que validam o media type podem rejeitá-lo.

Um JPG em Base64 ainda contém minha localização GPS?

Contém, se o original tinha. O Base64 copia cada byte, EXIF incluído. Marque Remover metadados (EXIF) para removê-lo; a foto é redesenhada sem metadados antes da codificação.

Por que o Base64 do meu JPG começa com /9j/?

Todo JPEG começa com os bytes FF D8 FF, e esses três bytes viram exatamente /9j/. Uma string que começa diferente não é JPEG, diga o nome do arquivo o que disser.

Como deixar o Base64 de uma foto mais curto?

Reduza os pixels e a qualidade antes de codificar. Uma Largura máx. igual ao tamanho de exibição e uma Qualidade por volta de 75–85% encolhem uma foto de celular muito mais do que qualquer coisa que você faça com o próprio Base64.