Mengendalikan warna gambar: mengkonversi antar colorspace seperti sRGB dan CMYK, mengurangi jumlah warna dengan colors, quantize, dan posterize, menyesuaikan level, gamma, dan kontras, bekerja per kanal dengan channel, serta mengelola transparansi dengan alpha, transparent, dan channel-fx.

Setelah di episode 4 kalian menguasai resize, crop, dan transform — dari geometry -resize hingga penempatan -gravity — sekarang kita masuk ke dimensi paling menarik dari pemrosesan gambar: warna. Ini adalah episode di mana hasil kerja kalian mulai terasa "sengaja" dan bukan sekadar kebetulan.
Di dunia nyata, pengendalian warna adalah pekerjaan sehari-hari: gambar untuk percetakan harus dalam CMYK, thumbnail untuk situs klasik harus direduksi warnanya, dan transparansi adalah fondasi semua aset PNG dan WebP modern. Episode ini membekali kalian dengan kendali atas tiga lapisan: ruang warna, kanal, dan alpha.
Colorspace adalah sistem yang memetakan nilai menjadi warna yang terlihat. Dua yang paling sering kalian temui:
| Colorspace | Dipakai Untuk | Catatan |
|---|---|---|
| sRGB | Web dan layar | Default di ImageMagick |
| CMYK | Percetakan | Butuh profile ICC untuk akurasi |
| HSL | Manipulasi warna intuitif | Hue, saturation, lightness |
| XYZ | Ilmu warna | Basis konversi antar colorspace |
magick sample.jpg -colorspace CMYK print-ready.jpg
magick print-ready.jpg -colorspace sRGB web-version.jpgTip
Simpan satu file master dalam sRGB, lalu konversi ke CMYK hanya pada saat mengekspor untuk cetak. Alasan: konversi bolak-balik sRGB ke CMYK ke sRGB tidak pernah mengembalikan warna persis sama — setiap konversi melewati komputasi yang bisa kehilangan detail. Ini prinsip yang sama dengan aturan "jangan simpan master sebagai JPEG".
-colors, -quantize, -posterizeTidak semua gambar butuh jutaan warna. Untuk GIF, ikon, atau efek artistik, kalian bisa mengurangi palet:
| Opsi | Fungsi |
|---|---|
-colors N | Kurangi gambar menjadi paling banyak N warna |
-quantize | Pilih colorspace yang dipakai untuk pengurangan warna |
-posterize N | Buat efek poster dengan mengurangi level tiap kanal |
magick sample.png -colors 256 palette-256.png
magick sample.png -colors 16 -quantize RGB palette-16.png
magick sample.png -posterize 4 poster.png-colors memakai teknik bernama quantization: algoritma memilih N warna yang paling mewakili gambar, lalu memetakan tiap piksel ke warna terdekat. GIF dan PNG8 (8-bit) butuh pengurangan ini karena formatnya memang membatasi jumlah warna.
Note
Perhatikan urutan: -quantize harus muncul sebelum -colors karena ia menentukan colorspace untuk proses kuantisasi yang dilakukan -colors. Urutan opsi dalam ImageMagick kadang penting — opsi mempengaruhi operasi yang datang setelahnya. Biasakan membaca command dari kiri ke kanan sebagai urutan pekerjaan.
Tiga opsi ini mengendalikan "eksposur" gambar secara global:
| Opsi | Efek |
|---|---|
-level | Atur titik hitam dan titik putih (membentang rentang tonal) |
-gamma | Koreksi kecerahan kurva (nilai lebih dari 1 mencerahkan) |
-contrast | Tambah atau kurangi kontras (bisa dikombinasikan) |
magick sample.jpg -level 10%,90% stretched.jpg
magick sample.jpg -gamma 1.2 brighter.jpg
magick sample.jpg -contrast -contrast punchy.jpg-level 10%,90% memetakan piksel di bawah 10% menjadi hitam dan di atas 90% menjadi putih, lalu membentangkan sisanya — efeknya seperti otomatis menormalkan foto yang kusam. -contrast boleh ditulis berulang untuk memperkuat efeknya.
-channelKanal adalah komponen warna individual — R, G, B (dan A untuk alpha). Opsi -channel membatasi operasi berikutnya hanya pada kanal tertentu:
magick sample.png -channel R -evaluate multiply 1.2 +channel red-boost.pngmagick sample.png -channel RGB -level 5%,95% balanced.png-evaluate multiply 1.2 mengalikan nilai kanal merah sebesar 20% — cara sederhana menggeser keseimbangan warna. Jangan lupa +channel untuk mereset pengaturan kanal, karena tanpa itu opsi-opsi berikutnya masih terbatas pada kanal yang dipilih.
Alpha adalah kanal keempat yang menyimpan tingkat transparansi per piksel. ImageMagick mengendalikannya lewat -alpha:
| Opsi | Efek |
|---|---|
-alpha on | Aktifkan kanal alpha |
-alpha off | Matikan kanal alpha (kehilangan transparansi) |
-alpha transparent | Set semua piksel menjadi transparan |
-alpha remove | Hapus alpha, rapikan transparansi dengan warna latar |
magick sample.png -alpha off opaque.png
magick sample.png -background white -alpha remove flattened.png-transparent mengubah satu warna menjadi transparan — teknik dasar untuk membuat stiker dari logo atau ikon:
magick sample.png -fuzz 5% -transparent white sticker.png-fuzz 5% memberi toleransi: piksel yang mendekati putih ikut transparan, mencegah tepi bergerigi karena warna putih yang tidak persis. Untuk melihat kanal alpha sebuah gambar, gunakan magick identify -verbose sample.png dan cari baris Alpha: pada outputnya.
-channel-fx adalah senjata paling kuat: ia menerima ekspresi matematika yang menghitung tiap kanal output dari kanal input (r, g, b, a):
magick sample.png -channel-fx "green=0.5*r+0.5*g" blend.pngEkspresi di atas menghitung kanal hijau baru sebagai rata-rata kanal merah dan hijau lama — semacam filter custom. -channel-fx membuka kemungkinan tak terbatas: dari konversi grayscale buatan sendiri (gray=0.3*r+0.6*g+0.1*b) sampai pemetaan kanal eksotis. Ketika opsi bawaan tidak cukup, inilah jalan keluarnya.
Warning
Kutip ekspresi -channel-fx dengan tanda kutip ganda di dalam shell. Karakter seperti * dan + bisa ditafsirkan shell sebagai wildcard dan operator sebelum sempat dibaca ImageMagick — kutipan melindungi ekspresi hingga tiba dengan utuh di ImageMagick.
Pada episode 5 ini, kalian telah menguasai pengendalian warna: konversi colorspace (sRGB, CMYK, HSL), pengurangan warna dengan -colors, -quantize, dan -posterize, penyesuaian tonal dengan -level, -gamma, dan -contrast, pekerjaan per kanal dengan -channel, serta manajemen transparansi dengan -alpha, -transparent, dan -channel-fx.
Inti yang harus dibawa pulang:
-colors dan -posterize mengurangi palet untuk GIF, PNG8, dan efek artistik.-level, -gamma, -contrast adalah kendali eksposur utama.-channel membatasi operasi per kanal; ingat +channel untuk reset.-transparent dengan -fuzz adalah teknik dasar pembuatan stiker.Di episode 6 selanjutnya, kita akan membahas montage, animate, dan display — menggabungkan banyak gambar dalam satu kanvas dengan montage, memutar urutan gambar sebagai animasi, dan menampilkan hasil secara interaktif. Perjalanan kalian di dunia warna baru saja dimulai!