Data di Dalam Komputer · Pelajaran 9 dari 9

Gambar dan warna: piksel dan RGB

8 menit baca · BelajarCode

Gambar digital tersusun dari piksel. Resolusi menyatakan banyaknya piksel, misalnya 1920 × 1080 berarti 1920 piksel mendatar dan 1080 piksel tegak, total 2.073.600 piksel.

Warna RGB

Setiap piksel berwarna menyimpan tiga nilai: merah, hijau, dan biru (RGB). Masing-masing 0 sampai 255, sehingga butuh 8 bit per warna atau 24 bit (3 byte) per piksel. Banyaknya kemungkinan warna adalah 256 × 256 × 256 = 16.777.216.

Contoh warna RGB
WarnaRGBHeksadesimal
Merah25500#FF0000
Hijau02550#00FF00
Biru00255#0000FF
Kuning2552550#FFFF00
Putih255255255#FFFFFF
Abu-abu128128128#808080

Warna layar dibentuk dari campuran cahaya, jadi merah dan hijau menghasilkan kuning, dan semua warna penuh menghasilkan putih.

Menghitung ukuran gambar

Gambar tanpa kompresi berukuran: lebar × tinggi × byte per piksel.

Python
1lebar = 19202tinggi = 10803byte_per_piksel = 34ukuran = lebar * tinggi * byte_per_piksel5print("Banyak piksel:", lebar * tinggi)6print("Ukuran tanpa kompresi:", ukuran, "byte")7print("Sekitar", round(ukuran / 1_000_000, 1), "MB")
Keluaran
Banyak piksel: 2073600
Ukuran tanpa kompresi: 6220800 byte
Sekitar 6.2 MB

Tanda _ di 1_000_000 hanya pemisah supaya angka besar mudah dibaca.

Kompresi

Foto 1920 × 1080 dari HP biasanya jauh lebih kecil dari 6,2 MB karena dikompresi. Ada dua jenis kompresi:

  • Lossless (tanpa kehilangan), misalnya PNG. Gambar bisa dikembalikan persis seperti aslinya. Cocok untuk tangkapan layar dan logo.
  • Lossy (dengan kehilangan), misalnya JPEG. Detail yang sulit dilihat mata dibuang supaya ukurannya jauh lebih kecil. Cocok untuk foto.

Mengubah warna menjadi abu-abu

Mata manusia lebih peka terhadap hijau daripada merah dan biru. Karena itu, kecerahan sebuah warna sering dihitung dengan bobot berbeda untuk setiap komponen:

Python
1def keabuan(r, g, b):2    return round(0.299 * r + 0.587 * g + 0.114 * b)34print(keabuan(255, 0, 0))5print(keabuan(0, 255, 0))6print(keabuan(31, 90, 240))
Keluaran
76
150
89

Hijau murni terlihat jauh lebih terang daripada merah murni, sesuai dengan bobotnya.

Cek pemahaman

Berapa byte yang dibutuhkan gambar 100 × 100 piksel dengan warna 24 bit tanpa kompresi?

Latihan

Ukuran foto HD

Hitung ukuran foto 1280 × 720 piksel dengan warna 24 bit tanpa kompresi, dalam byte dan dalam MB (1 MB = 1.000.000 byte). Lalu, jika kompresi JPEG membuat ukurannya tinggal sepersepuluh, berapa ukurannya?

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi