Working off Jeremy's response here: Converting hex color to RGB and vice-versa I was able to get a python program to convert preset colour hex codes (example #B4FBB8), however from an end-user perspective we can't ask people to edit code & run from there. How can one prompt the user to enter a hex value and then have it spit out a RGB value from there?
Here's the code I have thus far:
def hex_to_rgb(value): value = value.lstrip('#') lv = len(value) return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)) def rgb_to_hex(rgb): return '#%02x%02x%02x' % rgb hex_to_rgb("#ffffff") # ==> (255, 255, 255) hex_to_rgb("#ffffffffffff") # ==> (65535, 65535, 65535) rgb_to_hex((255, 255, 255)) # ==> '#ffffff' rgb_to_hex((65535, 65535, 65535)) # ==> '#ffffffffffff' print('Please enter your colour hex') hex == input("") print('Calculating...') print(hex_to_rgb(hex()))
Using the line print(hex_to_rgb('#B4FBB8'))
I'm able to get it to spit out the correct RGB value which is (180, 251, 184)
It's probably super simple - I'm still pretty rough with Python.
When denoting hexadecimal numbers in Python, prefix the numbers with '0x'. Also, use the hex() function to convert values to hexadecimal format for display purposes.
I believe that this does what you are looking for:
h = input('Enter hex: ').lstrip('#') print('RGB =', tuple(int(h[i:i+2], 16) for i in (0, 2, 4)))
(The above was written for Python 3)
Sample run:
Enter hex: #B4FBB8 RGB = (180, 251, 184)
To write to a file with handle fhandle
while preserving the formatting:
fhandle.write('RGB = {}'.format( tuple(int(h[i:i+2], 16) for i in (0, 2, 4)) ))
You can use ImageColor
from Pillow.
>>> from PIL import ImageColor >>> ImageColor.getcolor("#23a9dd", "RGB") (35, 169, 221)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With