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

Base64 para JPG

Cole o Base64 de uma foto, com ou sem o prefixo data:image/jpeg;base64,, e salve como .jpg. O arquivo decodificado é o JPEG original byte a byte, metadados incluídos.

Grátis sem cadastro, sem limites Local nada é enviado Exato o arquivo original, byte a byte Atualizado 27 de out. de 2026
Entrada –Saída –Tamanho –

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

Como converter Base64 para JPG

  1. Cole a string na caixa. Funciona Base64 puro começando com /9j/, URI data:image/jpeg;base64, completo e também uma tag <img> ou regra CSS que contenha um.
  2. A linha de status confirma Base64 válido e Detectado JPEG, e a prévia mostra a foto com o tamanho em pixels e o tamanho do arquivo.
  3. Defina um Nome do arquivo e clique em Baixar arquivo.

Fotos grandes não são problema. Uma string Base64 de vários megabytes pode ser colada ou aberta de um arquivo .txt; acima de 4 MB, ela é decodificada sem ser exibida na caixa de texto.

O que você recebe de volta

A decodificação devolve exatamente os bytes que foram codificados. A qualidade não muda e nada é recompactado. Isso também significa que tudo o que o arquivo original continha volta junto:

  • Metadados EXIF: modelo da câmera, horário da captura, orientação e, se a localização estava ligada, coordenadas de GPS. Se você recebeu o Base64 de outra pessoa, a foto pode contar mais do que ela pretendia. Se você vai repassá-la, remova os metadados antes, por exemplo com JPG para Base64 e Remover metadados (EXIF).
  • Miniaturas embutidas e perfis de cor.
  • Dados extras depois do fim da imagem. As fotos com movimento de alguns celulares Android acrescentam um vídeo curto depois do JPEG, e é por isso que uma “foto” dessas pode ser várias vezes maior que o esperado.

O SHA-256 abaixo da prévia permite provar que o arquivo salvo corresponde a um hash que você recebeu.

Como distinguir um JPEG de algo que só diz ser um

O decodificador se guia pelos bytes e ignora o rótulo. Um URI data:image/jpeg com dados PNG, ou um campo de API chamado photo_jpg que contém WebP, é apontado como tal: “Isto parece ser WebP, não JPEG”, com um botão Baixar como .webp.

CDNs de imagem escolhem o formato de saída pelo header Accept do navegador, então uma imagem buscada como photo.jpg e depois codificada em Base64 no navegador pode ser WebP ou AVIF. Uma imagem copiada com “Copiar imagem” no navegador normalmente vai para a área de transferência como PNG, mesmo que a página mostrasse um JPEG, e o que a codificou a partir da área de transferência gerou Base64 de PNG.

Se você precisa mesmo de um JPEG, renomear não resolve. Salve o arquivo no formato real, converta com Imagem para Base64 e Converter para JPEG, e decodifique o resultado aqui.

Como identificar um JPEG truncado

Arquivos JPEG terminam com o marcador FF D9. Dependendo do resto da divisão do tamanho do arquivo por 3, isso gera um de três finais em Base64:

Tamanho do arquivo mod 3Últimos bytesO Base64 termina com
2FF D9/9k=
1.. FF D9/2Q==
0.. FF D9/Z, normalmente //Z

Um JPEG cortado ainda decodifica. Os navegadores desenham a parte que receberam, então a parte de baixo da foto fica cinza ou some, ou um JPEG progressivo fica borrado. As causas típicas são uma coluna de banco de dados curta demais, um logger que limita o tamanho da linha e um app de mensagens que divide textos longos. Copie o valor de novo da origem.

A mesma verificação em Python:

import base64

def check_jpeg(b64: str) -> str:
    data = base64.b64decode(b64.split(",", 1)[-1])
    if not data.startswith(b"\xff\xd8\xff"):
        return "not a JPEG"
    end = data.rfind(b"\xff\xd9")
    if end < 0:
        return "truncated: no end-of-image marker"
    extra = len(data) - end - 2
    return f"complete, {extra} bytes after the end marker" if extra else "complete"

Use como um teste rápido. Um JPEG de câmera traz uma miniatura EXIF com o seu próprio FF D9, então uma foto muito truncada ainda pode passar. Base64 em Python tem mais sobre decodificação de arquivos.

Problemas comuns

  • Erro “Comprimento incorreto”. Um caractere se perdeu ou sobrou, normalmente numa quebra de linha durante a cópia. Copie o valor inteiro de novo.
  • Caractere inválido \. A string veio de um JSON com barras escapadas (\/9j\/4AAQ...). Passe por Reparar Base64 ou desfaça os escapes do JSON antes.
  • A foto é enorme. O Base64 esconde o tamanho real de uma imagem: uma string de 4 MB é uma foto de 3 MB. A linha Tamanho mostra o tamanho decodificado, e as dimensões em pixels aparecem acima da prévia.

Perguntas frequentes

O arquivo decodificado deve ser .jpg ou .jpeg?

Tanto faz. As duas extensões indicam o mesmo formato e todos os programas aceitam ambas. A ferramenta usa .jpg; digite jpeg em Extensão se algum sistema exigir a forma longa.

Como verificar se uma string Base64 de JPEG está completa?

Um JPEG completo termina com os bytes FF D9, então o Base64 dele normalmente termina em /9k=, /2Q== ou /Z. Uma string que termina de outro jeito e uma imagem sem a parte de baixo apontam para truncamento.

Dá para ver os dados EXIF da foto decodificada?

A ferramenta não lista os campos EXIF, mas Mostrar dump hex revela um bloco Exif e, muitas vezes, o fabricante da câmera na coluna de texto. Baixe o arquivo e abra em um visualizador de EXIF para ver a lista completa.

Por que a foto decodificada aparece girada em alguns apps?

Celulares muitas vezes gravam os pixels de lado e registram a rotação em uma tag EXIF. Os navegadores aplicam essa tag, então a prévia fica certa, mas programas que a ignoram mostram a orientação bruta. Os bytes são os mesmos nos dois casos.