All Tools / Blog / Como Converter Entre Formatos de Imagem (PNG, JPG, WebP, AVIF)

Como Converter Entre Formatos de Imagem (PNG, JPG, WebP, AVIF)

3 min read

Escolher o formato errado desperdiça banda ou perde qualidade. PNG com 400 KB onde WebP com 80 KB faz o mesmo trabalho. JPG quando PNG era necessário e a transparência sumiu. Veja como converter entre formatos e quando cada um é a escolha certa.

No navegador

Solte imagens no Image Format Converter, selecione o formato de destino e a qualidade, depois baixe. Todo o processamento roda no lado do cliente — os arquivos ficam no seu dispositivo. Conversões suportadas: PNG ↔ JPG, PNG ↔ WebP, JPG ↔ WebP, BMP → JPG/PNG, qualquer formato → AVIF.

Quando usar cada formato

Formato Melhor para Transparência Lossy Tamanho vs JPG
JPG Fotos, gradientes Não Sim Referência
PNG Capturas de tela, logos, UI Sim Não Maior
WebP Imagens web (todos os tipos) Sim Ambos ~30% menor
AVIF Web moderno, alta compressão Sim Ambos ~50% menor
BMP Legado Windows, pixels brutos Sim Não Muito maior

WebP é a escolha segura para novos projetos web — suporte amplo de navegadores desde 2020, compressão melhor que JPG e suporte completo a transparência. AVIF é melhor ainda, mas exige Safari 16+ e Chrome 85+.

Python: Pillow

from PIL import Image

# PNG para JPG (precisa remover o canal alpha primeiro)
with Image.open('image.png') as img:
    img.convert('RGB').save('image.jpg', quality=85)

# JPG para WebP
with Image.open('image.jpg') as img:
    img.save('image.webp', quality=80)

# WebP para PNG
with Image.open('image.webp') as img:
    img.save('image.png')

PNG tem canal alpha; JPG não tem. .convert('RGB') achata a transparência para branco antes de salvar como JPG. Sem isso, o Pillow lança um erro.

# Converter em lote uma pasta de JPGs para WebP
from pathlib import Path
from PIL import Image

for f in Path('images/').glob('*.jpg'):
    with Image.open(f) as img:
        out = f.with_suffix('.webp')
        img.save(out, quality=80)
    print(f'{f.name} → {out.name}')

ImageMagick

# Conversões únicas
convert image.png image.jpg
convert image.jpg -quality 85 image.webp
convert image.png -quality 80 image.avif

# PNG para JPG — achatar transparência para fundo branco
convert image.png -background white -flatten image.jpg

# Converter em lote todos os PNGs para WebP
mogrify -format webp -quality 80 *.png

# Verificar o formato e as dimensões de qualquer arquivo
identify image.webp

Configurações de qualidade

Qualidade Tamanho do arquivo Diferença visível
95 Grande Nenhuma
85 Médio Nenhuma para a maioria das imagens
75 Pequeno Leves artefatos em bordas nítidas
60 Muito pequeno Compressão visível

85 é o padrão certo para JPG e WebP. Desça para 75 em miniaturas. Fique em 85+ para imagens de produto ou portfólio.

Transparência e compatibilidade de formato

Três cenários onde a escolha de formato quebra o resultado:

JPG remove a transparência. Converta um logo PNG com fundo transparente para JPG e a transparência vira branca (ou preta). Use WebP ou PNG quando precisar de fundo transparente.

BMP não tem compressão. Um BMP 1920×1080 tem cerca de 6 MB. Converta para PNG para lossless em ~1 MB, ou JPG para fotos em ~300 KB.

Codificação AVIF é lenta. AVIF produz os menores arquivos, mas a codificação demora muito mais que WebP ou JPG. Bom para pipelines de build; não ideal para processamento em tempo real.

Pontos principais

  • Use WebP para novos projetos web — ~30% menor que JPG, transparência suportada, suporte amplo de navegadores desde 2020.
  • Sempre .convert('RGB') antes de salvar PNG como JPG no Pillow — remove o canal alpha de forma limpa.
  • mogrify (ImageMagick) converte uma pasta inteira em um comando.
  • Qualidade 85 é o padrão correto para JPG e WebP; reduza apenas para miniaturas.
  • AVIF dá a melhor compressão, mas a codificação é lenta — use em pipelines offline, não em tempo real.