gtk3+ and python rgba convert to hex

2019-03-07 03:26发布

问题:

i using gtk3 i found that it use rgba for representing color, but the (red,green,blue,alpha) are not integer between 0-255 but floating point number between 0-1.0, so i don't know how to convert from rgba to hex and vice-versa

i have tried this code but its seem to not work :

def convert_to_hex(rgba_color) :
red = str(hex(int(rgba_color.red*255)))[2:].capitalize()
green = str(hex(int(rgba_color.green*255)))[2:].capitalize()
blue = str(hex(int(rgba_color.blue*255)))[2:].capitalize()

return '0x' + red + green + blue

回答1:

Assuming the problem is that the number should have leading zeros when they are only 1 digit. Here is a solution for that.

def convert_to_hex(rgba_color) :
    red = int(rgba_color.red*255)
    green = int(rgba_color.green*255)
    blue = int(rgba_color.blue*255)
    return '0x{r:02x}{g:02x}{b:02x}'.format(r=red,g=green,b=blue)