gtk3 +和python rgba转换为十六进制

时间:2014-02-22 13:11:30

标签: python python-3.x pygtk gtk3

我使用gtk3我发现它使用rgba来表示颜色,但(红色,绿色,蓝色,alpha)不是 0-255 之间的整数,而是漂浮 0-1.0 之间的点号,所以我不知道如何从rgba转换为十六进制,反之亦然

我尝试过这段代码,但它似乎无效:

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 个答案:

答案 0 :(得分:4)

假设问题是当数字只有1位时,数字应该有前导零。这是一个解决方案。

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)