我使用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
答案 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)