Saya sedikit menggemari ricing atau menghias tampilan GUI
dan WM
(window manager). Salah satu yang dihias biasanya adalah warna dan kadang warna yang saya dapatkan berupa kode hex
, misalnya #1d2d34
. Sedangkan yang saya butuhkan adalah berupa kode warna RGB, misalnya (28, 24, 35) atau dalam bentuk bilangan “0” sampai “1”, misalnya (0.1, 0.2, 1). Berbekal rasa penasaran, akhirnya saya mengulik cara sederhana untuk mengkonversi kode warna hex
ke format RGB
dengan bahasa python
.
Menggunakan python ? Modul apa yang dipakai.
Untuk mengkonversi kode warna, kita memiliki beberapa alternatif modul. Untuk kesempatan kali ini, kita hanya memaparkan 2 modul yaitu matplotlib dan pillow. Matplotlib
dan pillow
bisa dipasang melalui paket manager atau bisa lewat pip
.
Catatan : Untuk menghindari error “externally-managed-environment” saat memasang modul dengan pip, disarankan untuk menggunakan lingkungan virtual. Panduan bisa dilihat di sini.
Mengkonversi kode warna hex dengan matplotlib dan pillow.
Menggunakan modul matplotlib.
Mengkonversi warna dengan modul matplotlib
cukup sederhana, kita hanya perlu menulis sekitar 3 baris kode. Kodenya sebagai berikut, misal kita ingin mengetahui kode RGB
dari warna #1d2d34
.
#!/usr/bin/env python3
import matplotlib.colors
rgb = matplotlib.colors.to_rgb('#1d2d34')
print(rgb)
Code language: Python (python)
output yang kita dapat akan seperti ini.
(0.11372549019607843, 0.17647058823529413, 0.20392156862745098)
Code language: Shell Session (shell)
Jika menginginkan kode yang menggunakan argumen / opsi, bisa diubah menjadi seperti ini.
#!/usr/bin/env python3
import sys
import matplotlib.colors
hex = sys.argv[1]
rgb = matplotlib.colors.to_rgb(hex)
print(rgb)
Code language: Python (python)
Simpan dengan nama hex-ke-rgb.py
lalu jalankan seperti berikut ini !
$ ./hex-ke-rgb.py '#kodewarnahex'
$ ./hex-ke-rgb.py '#1d2d34'
Code language: Shell Session (shell)
Hasilnya akan sama, yaitu :
(0.11372549019607843, 0.17647058823529413, 0.20392156862745098)
Code language: Shell Session (shell)
Menggunakan modul pillow.
Menggunakan modul pillow tidak kalah sederhana, kita akan menulis kode untuk hasil konversi bilangan bulat dan desimal. Misalnya kita ingin mengetahui kode RGB
dari warna #1d2d34
. Kodenya sebagai berikut.
#!/usr/bin/env python3
from PIL import ImageColor
rgb = ImageColor.getcolor("#1d2d34", "RGB")
print(rgb)
print([i/255 for i in rgb])
Code language: JavaScript (javascript)
output yang kita dapat akan seperti ini.
(29, 45, 52)
[0.11328125, 0.17578125, 0.203125]
Code language: Shell Session (shell)
Atau jika ingin menggunakan opsi atau argumen, kita bisa mengubahnya seperti ini.
#!/usr/bin/env python3
import sys
from PIL import ImageColor
hex = sys.argv[1]
rgb = ImageColor.getrgb(hex)
print("Biasa :", rgb)
print("0 - 1 :", [i/256 for i in rgb])
Code language: Python (python)
Simpan sebagai pillow.py, lalu jalankan kodenya !
$ ./pillow.py '#kodewarnahex'
$ ./pillow.py '#1d2d34'
Code language: Shell Session (shell)
output yang kita dapat akan seperti ini.
Biasa : (29, 45, 52)
0 - 1 : [0.11328125, 0.17578125, 0.203125]
Code language: Shell Session (shell)
Ringkasan.
Berikut ini adalah beberapa ringkasan bahasan kita kali ini.
- Kode warna
hex
dapat dikonversi ke formatRGB
. - Konversi bisa menggunakan modul python, di antaranya
matplotlib
danpillow
.
Referensi dan kredit.
Berikut ini merupakan referensi dan kredit untuk bahasan kita kali ini.
- Post Julian White pada laman Stackoverflow berkaitan dengan cara konversi kode warna hex ke format rgb.
- Jawaban SuperNova untuk referensi penggunaan modul
pillow
. - Jawaban LBJ untuk referensi penggunaan modul
matplotlib
.
Penutup.
Demikiann tadi tutorial singkat tentang cara mengkonversi kode warna hex
ke format RGB
dengan python
. Semoga bisa menambah referensi kita dalam dunia kode python. Terima kasih dan sampai berjumpa pada bahasan selanjutnya !
Leave a Reply