Cara Mengonversi Format Gambar (PNG, JPG, WebP, AVIF)
Format yang salah membuang bandwidth atau merusak kualitas. PNG sebesar 400 KB ketika WebP 80 KB sudah cukup. JPG dipakai padahal PNG dibutuhkan dan transparansinya hilang. Begini cara mengonversi antar format dan kapan masing-masing format adalah pilihan yang tepat.
Di browser
Seret gambar ke Image Format Converter, pilih format target dan kualitas, lalu unduh. Semua pemrosesan berjalan di sisi klien — file tetap di perangkat Anda. Konversi yang didukung: PNG ↔ JPG, PNG ↔ WebP, JPG ↔ WebP, BMP → JPG/PNG, apa pun → AVIF.
Kapan menggunakan format apa
| Format | Terbaik untuk | Transparansi | Lossy | Ukuran vs JPG |
|---|---|---|---|---|
| JPG | Foto, gradien | Tidak | Ya | Acuan |
| PNG | Screenshot, logo, UI | Ya | Tidak | Lebih besar |
| WebP | Gambar web (semua jenis) | Ya | Keduanya | ~30% lebih kecil |
| AVIF | Web modern, kompresi tinggi | Ya | Keduanya | ~50% lebih kecil |
| BMP | Warisan Windows, piksel mentah | Ya | Tidak | Jauh lebih besar |
WebP adalah pilihan aman untuk proyek web baru — dukungan browser luas sejak 2020, kompresi lebih baik dari JPG, dan mendukung transparansi penuh. AVIF lebih baik lagi, tapi membutuhkan Safari 16+ dan Chrome 85+.
Python: Pillow
from PIL import Image
# PNG ke JPG (alpha channel harus dihapus dulu)
with Image.open('image.png') as img:
img.convert('RGB').save('image.jpg', quality=85)
# JPG ke WebP
with Image.open('image.jpg') as img:
img.save('image.webp', quality=80)
# WebP ke PNG
with Image.open('image.webp') as img:
img.save('image.png')
PNG memiliki alpha channel; JPG tidak. .convert('RGB') meratakan transparansi ke putih sebelum disimpan sebagai JPG. Tanpanya, Pillow akan error.
# Konversi massal folder JPG ke 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
# Konversi tunggal
convert image.png image.jpg
convert image.jpg -quality 85 image.webp
convert image.png -quality 80 image.avif
# PNG ke JPG — ratakan transparansi ke latar putih
convert image.png -background white -flatten image.jpg
# Konversi massal semua PNG ke WebP
mogrify -format webp -quality 80 *.png
# Periksa format dan dimensi file apa pun
identify image.webp
Pengaturan kualitas
| Kualitas | Ukuran file | Perbedaan terlihat |
|---|---|---|
| 95 | Besar | Tidak ada |
| 85 | Sedang | Tidak ada untuk kebanyakan gambar |
| 75 | Kecil | Sedikit artefak di tepi tajam |
| 60 | Sangat kecil | Kompresi terlihat |
85 adalah default yang tepat untuk JPG dan WebP. Turunkan ke 75 untuk thumbnail. Tetap di 85+ untuk gambar produk atau portofolio.
Transparansi dan kompatibilitas format
Tiga skenario di mana pilihan format merusak hasil:
JPG menghapus transparansi. Konversi logo PNG dengan latar transparan ke JPG dan transparansinya menjadi putih (atau hitam). Gunakan WebP atau PNG jika butuh latar transparan.
BMP tidak terkompresi. BMP 1920×1080 berukuran sekitar 6 MB. Konversi ke PNG untuk lossless di ~1 MB, atau JPG untuk foto di ~300 KB.
Encoding AVIF lambat. AVIF menghasilkan file terkecil, tapi encoding memakan waktu jauh lebih lama dibanding WebP atau JPG. Cocok untuk pipeline build; tidak ideal untuk pemrosesan real-time.
Poin utama
- Gunakan WebP untuk proyek web baru — ~30% lebih kecil dari JPG, mendukung transparansi, dukungan browser luas sejak 2020.
- Selalu
.convert('RGB')sebelum menyimpan PNG ke JPG di Pillow — membuang alpha channel dengan bersih. mogrify(ImageMagick) mengonversi seluruh folder sekaligus dalam satu perintah.- Kualitas 85 adalah default yang benar untuk JPG dan WebP; turunkan hanya untuk thumbnail.
- AVIF memberikan kompresi terbaik tapi encoding lambat — gunakan untuk pipeline offline, bukan pemrosesan real-time.