Como Converter Entre Formatos de Imagem (PNG, JPG, WebP, AVIF)
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.