Como usar
- Solte um arquivo .jpg ou .jpeg na área de arrastar e soltar, clique para escolher um ou cole uma imagem.
- Para manter o arquivo exatamente como está, deixe Converter para em Manter o original. Para reduzi-lo, escolha JPEG ou WebP e diminua a Qualidade.
- Defina uma Largura máxima se a foto for maior do que o tamanho em que será exibida.
- Copie a saída de que você precisa, como a tag img para uma página ou o Base64 puro para uma API, ou baixe-a como arquivo.
JPEG em resumo
O JPEG é o formato padrão para fotografias. Ele usa compressão com perdas, descartando detalhes que o olho mal percebe, e não tem transparência. Os arquivos terminam em .jpg, .jpeg ou às vezes .jfif, mas o tipo MIME é sempre image/jpeg; image/jpg não é um tipo registrado, embora muitos navegadores o aceitem. Um data URI de JPEG começa com data:image/jpeg;base64,/9j/, o marcador de início de imagem codificado.
Como reduzir uma foto antes de codificar
É nas fotos que o Base64 pesa mais: um JPEG de 200 KB vira cerca de 270 KB de texto. Duas configurações fazem a maior diferença:
- Largura máxima. Reduzir a largura pela metade corta a quantidade de pixels para um quarto. Uma foto de celular com 4000 pixels de largura raramente é necessária nesse tamanho.
- Qualidade. Valores entre 70 e 80% geralmente parecem iguais ao original na tela e são bem menores. Valores muito baixos mostram artefatos em blocos.
Converter para WebP com qualidade semelhante costuma gerar um resultado ainda menor. Observe o tamanho codificado exibido para cada configuração e fique com o menor resultado que ainda tenha boa aparência.
Metadados EXIF
Fotos de câmeras e celulares carregam metadados EXIF: modelo da câmera, data e hora e, às vezes, coordenadas de GPS. Sem conversão, a saída em Base64 contém os bytes originais, metadados incluídos, e qualquer pessoa que a decodificar poderá lê-los. É isso que você quer quando o arquivo exato importa, por exemplo, quando uma API verifica um hash ou lê a data da captura.
A conversão recodifica os pixels no navegador, e os dados EXIF não são transferidos. A saída fica menor e deixa de revelar onde a foto foi tirada.
Quando um data URI de JPEG vale a pena
Bons casos são pequenos placeholders desfocados (uma imagem de 20 a 40 pixels de largura, incorporada enquanto a foto completa é carregada sob demanda), miniaturas em respostas JSON e exportações HTML em arquivo único. Imagens de destaque e galerias devem ficar em arquivos separados, que o navegador pode armazenar em cache.
# Python
import base64
with open('photo.jpg', 'rb') as f:
uri = 'data:image/jpeg;base64,' + base64.b64encode(f.read()).decode('ascii')
Perguntas frequentes
JPG é o mesmo que JPEG?
Sim. A extensão mais curta .jpg vem de sistemas que permitiam apenas três caracteres. As duas indicam o mesmo formato, com o tipo MIME image/jpeg.
A codificação Base64 reduz a qualidade do JPEG?
Não. O Base64 é uma representação sem perdas dos bytes do arquivo. A qualidade só muda se você escolher uma conversão, que recodifica a imagem com a qualidade definida.
Um data URI de JPEG pode ter fundo transparente?
A string Base64 contém a localização da minha foto?
Pode conter. Se o JPEG original tiver dados de GPS nos metadados EXIF e você o codificar sem alterações, a localização estará na string. Converter a imagem remove os metadados EXIF.