Jaman dulu, ketika masih belajar dan menggemari dunia desain, saya kadang menemukan beberapa orang meminta pallete warna pada sebuah desain. Pada saat itu saya belum tahu dan tidak begitu peduli dengan hal itu. Bukankah pada satu software desain ada fitur mengambil warna (color picker) ? Kenapa mereka tidak pakai itu saja ya ?
Singkat cerita, saya teringat lagi oleh peristiwa di atas dan mulai penasaran. Apakah kita bisa membuat tool / alat sederhana yang bisa mengambil palet warna dari sebuah gambar / foto ? Setelah mencari dan mencoba, ternyata bisa ! Hari ini kita akan membuatnya.

Contoh pallete warna dari foto yang saya miliki.
Menggunakan alat / tool apa, nih ?
Karena kita akan berhadapan dengan berkas gambar / foto, kita gunakan alat / tool yang berhubungan gambar / foto. Kita akan menggunakan ImageMagick saja ya ? Selain sudah beberapa kali kita gunakan untuk pembahasan, tutorialnya cukup mudah untuk diikuti.

ImageMagick, salah satu tool underrated untuk mengolah gambar.
Bagaimana cara mengambil warna palletnya ?
Untuk mengambil warna pallet dengan ImageMagick, kita akan menggunakan salah satu tool bawaan ImageMagick yaitu convert. Berdasarkan post dari stackoverflow, cek tautanya di sini, kita bisa menggunakan tool convert seperti ini :
#!/usr/bin/bash
convert $1 \
-format %c \
-colorspace LAB \
-colors 5 \
histogram:info:- \
| sort -n -r \
| awk '{print $3}' > warna_palet.txt
Code language: Shell Session (shell)
# Penggunaannya.
$ ./skrip berkas_foto_gambar.png
Code language: Shell Session (shell)
Perintah di atas akan menghasilkan 1 daftar pallet warna yang berisi 5 warna pada sebuah berkas text warna_palet.txt. Sebagai contoh, ini isi yang saya dapatkan.
#0F3C72
#15509B
#1A68C7
#123F78
#FAFBFA
Code language: Shell Session (shell)
Mengubah daftar warna pallete menjadi gambar pallete.
Kalau sekadar melihat daftar warna, sepertinya kurang menarik. Bagaimana kalau kita mengubahnya menjadi gambar pallete yang bisa dilihat ? Wah sepertinya akan menjadi lebih jelas.
Kita mulai dengan mengambil tiap kode hex warna sesuai barisnya.
pal_n () {
sed -n "$1"p warna_palet.txt
}
pal1=$(echo $(pal_n 1))
pal2=$(echo $(pal_n 2))
pal3=$(echo $(pal_n 3))
pal4=$(echo $(pal_n 4))
pal5=$(echo $(pal_n 5))
Code language: Shell Session (shell)
Setelah mendapatkan masing-masing kode hex warna tiap baris, kita bisa mengkonversinya menjadi gambar pallete warna yang bisa dilihat.
convert -size 60x60 \
xc:"$pal1" \
xc:"$pal2" \
xc:"$pal3" \
xc:"$pal4" \
xc:"$pal5" \
+append nama_berkas.png
Code language: Shell Session (shell)
Skrip secara utuh.
Berikut ini adalah contoh skrip secara utuh, kita bisa menyimpannya dengan nama palet_warna.
#!/usr/bin/bash
convert $1 \
-format %c \
-colorspace LAB \
-colors 5 \
histogram:info:- \
| sort -n -r \
| awk '{print $3}' > warna_palet.txt
pal_n () {
sed -n "$1"p warna_palet.txt
}
pal1=$(echo $(pal_n 1))
pal2=$(echo $(pal_n 2))
pal3=$(echo $(pal_n 3))
pal4=$(echo $(pal_n 4))
pal5=$(echo $(pal_n 5))
convert -size 60x60 \
xc:"$pal1" \
xc:"$pal2" \
xc:"$pal3" \
xc:"$pal4" \
xc:"$pal5" \
+append $2
Code language: Shell Session (shell)
# Contoh penggunaannya.
$ ./palet_warna foto_gambar.png palet_warna.png
Code language: Shell Session (shell)
Waktunya mencoba !
Setelah kita punya skrip-nya, saatnya mencoba ! Di sini saya ingin mengetahui warna pallete dari gambar ini.

Gambar tangkapan layar desktop saya, saya ingin tahu warna pallet-nya.
Dengan menggunakan skrip yang sudah kita dapatkan, hasil warna pallet dari gambar di atas adalah sebagai berikut.

Bagaimana ? Cukup sesuai ya ?
Bagaimana ? Cukup sederhana, kan ?
Setelah kamu tahu cara mengambil warna pallete dengan ImageMagick, kamu bisa memiliki alternatif cara, selain menggunakan tool / alat yang rumit (Gimp, Photoshop, dll).
Penutup.
Yeah, demikian tadi, sedikit cara untuk mengambil warna pallete dari sebuah gambar / foto. Semoga bisa menjadi referensi dan informasi untuk kita semua, utamanya untuk saya pribadi. Jujur saya baru menemukannya beberapa hari yang lalu. Terima kasih dan sampai berjumpa pada bahasan selanjutnya !
Leave a Reply