Screenshot from 2023 03 23 17 45 23

Mengambil Pallete Warna dari Foto / Gambar dengan ImageMagick.

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.

paletcek

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.

Screenshot from 2023 03 23 17 45 23

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.txtCode language: Shell Session (shell)
# Penggunaannya.

$ ./skrip berkas_foto_gambar.pngCode 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
#FAFBFACode 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.pngCode 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 $2Code language: Shell Session (shell)
# Contoh penggunaannya.

$ ./palet_warna foto_gambar.png palet_warna.pngCode language: Shell Session (shell)

Waktunya mencoba !

Setelah kita punya skrip-nya, saatnya mencoba ! Di sini saya ingin mengetahui warna pallete dari gambar ini.

20230813 14h19m31s grim

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.

paletdesk

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 !

Artikel Terkait

Leave a Reply

Your email address will not be published. Required fields are marked *