All Tools / Blog / Cara Mengonversi Format Gambar (PNG, JPG, WebP, AVIF)

Cara Mengonversi Format Gambar (PNG, JPG, WebP, AVIF)

3 min read

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.