Format PNG — Kompresi Lossless dan Latar Transparan
Latar belakang lahirnya PNG (masalah paten GIF), sejarahnya dari rekomendasi W3C 1996 hingga edisi ketiga 2025 (HDR, APNG, EXIF), prinsip kompresi lossless dan struktur chunk, transparansi, serta alasan ukurannya membengkak bila dipakai untuk foto.
PNG (Portable Network Graphics) dibuat pada pertengahan 1990-an untuk menghindari masalah paten kompresi LZW yang dipakai GIF sekaligus menawarkan fitur yang lebih baik. PNG menjadi rekomendasi W3C pada 1996 dan kemudian distandardisasi sebagai ISO/IEC 15948. Pada Juni 2025, PNG edisi ketiga — revisi pertama dalam 22 tahun sejak edisi kedua (2003) — diterbitkan sebagai rekomendasi W3C dan secara resmi memasukkan PNG animasi (APNG), informasi warna HDR, dan chunk EXIF ke dalam standar.
Prinsip kompresi
PNG adalah format lossless yang sama sekali tidak mengubah nilai piksel. Setiap baris diberi filter untuk mengubah nilai menjadi sesuatu yang mudah diprediksi, seperti “selisih dengan piksel kiri dan atas”, lalu dikompresi dengan algoritme Deflate yang satu keluarga dengan zip. Jika warna yang sama berulang di area luas, nilai selisihnya berderet nol sehingga hasilnya sangat kecil; sedangkan foto yang nilai tiap pikselnya sedikit berbeda hampir tidak terkompresi.
Mengurangi warna menjadi 256 atau kurang dan menyimpannya dengan palet (warna terindeks) bisa memperkecil ukuran secara drastis, tetapi ingat bahwa pengurangan warna itu sendiri adalah kehilangan data, jadi hasilnya berbeda dari aslinya meskipun berformat PNG.
Tanda tangan file dan struktur chunk
File PNG selalu diawali tanda tangan 8 byte (heksadesimal 89 50 4E 47 0D 0A 1A 0A). Setelah itu berderet unit bernama chunk, masing-masing terdiri dari panjang, jenis (4 huruf), data, dan nilai pemeriksaan CRC.
| Chunk | Fungsi |
|---|---|
| IHDR | Lebar·tinggi, kedalaman bit, tipe warna |
| PLTE | Palet (untuk warna terindeks) |
| tRNS | Info transparansi untuk gambar berpalet atau satu warna |
| IDAT | Data piksel terkompresi (bisa terbagi ke beberapa chunk) |
| eXIf | Metadata EXIF (resmi masuk edisi ketiga) |
| cICP | Info ruang warna seperti HDR (ditambahkan di edisi ketiga) |
| acTL · fcTL · fdAT | Kontrol animasi dan frame APNG (resmi masuk edisi ketiga) |
| IEND | Akhir file |
Chunk tambahan yang tidak dikenal dirancang untuk diabaikan, sehingga program lama tetap bisa membuka file meskipun fitur baru ditambahkan. Berkat rancangan ini pula penampil yang tidak mendukung APNG hanya menampilkan frame pertama.
Transparansi
Setiap piksel PNG dapat memiliki kanal alfa 0–255 tingkat (0–65,535 untuk 16 bit), sehingga bayangan semi-transparan hingga tepi rambut tampil alami. Itulah sebabnya PNG menjadi format standar untuk gambar yang latarnya dihapus, logo, dan ikon.
Kelebihan dan keterbatasan
- Ideal untuk teks, garis, dan diagram: tepi tetap tajam dan ukurannya sering lebih kecil daripada JPG.
- Tidak berkurang meski disimpan berulang: cocok sebagai file perantara saat mengedit.
- Tidak efisien untuk foto: foto yang sama tersimpan dengan ukuran beberapa kali lipat JPG.
- Dukungan APNG: menurut Can I use, didukung sejak Chrome 59, Firefox 3, dan Safari 8; program yang tidak mendukung hanya menampilkan frame pertama.
Kegunaan utama
Tangkapan layar, logo dan ikon, gambar berlatar transparan, diagram dan grafik, serta file master untuk diedit. Juga dipakai saat percetakan meminta file lossless.
Saat mengonversi ke format lain
- PNG → JPG: bagian transparan harus diisi warna latar. Mengubah tangkapan layar ke JPG bisa membuat tepi teks berbayang, jadi pasang kualitas tinggi (PNG ke JPG).
- PNG → WebP: mengubah ke WebP lossless sering memperkecil ukuran sambil mempertahankan transparansi. Google menyatakan WebP lossless rata-rata 26% lebih kecil daripada PNG.
- PNG → ICO: jika perlu favicon atau ikon Windows, konversikan PNG ke ICO. Sebaiknya gunakan gambar asli berbentuk persegi.
- PNG 16 bit: Canvas browser memproses 8 bit per kanal, jadi gambar asli 16 bit akan turun menjadi 8 bit bila dikonversi dengan alat web.