Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将rgba颜色代码255255转换为1,1,1,1中的kivy颜色代码_Python_Colors_Kivy - Fatal编程技术网

Python 将rgba颜色代码255255转换为1,1,1,1中的kivy颜色代码

Python 将rgba颜色代码255255转换为1,1,1,1中的kivy颜色代码,python,colors,kivy,Python,Colors,Kivy,为了在kivy中指定任何颜色值,我们需要指定从0到1的值,即。 颜色默认为[1,1,1,1],可以包含0到1之间的值,但是其他语言的rgba代码总是在0到255之间指定,我通常从任何web链接引用它们,如中所示 这甚至在各种python工具包示例pyQt库中都有帮助,但在kivy中则有所不同 有人知道为什么它是从0到1指定的吗?是否有任何方法可以将各种其他语言使用的值编码为kivy颜色代码。例如,如果我想将rgb(192192)更改为kivy颜色代码,该怎么办?我想您可以将其除以255: fl

为了在kivy中指定任何颜色值,我们需要指定从0到1的值,即。 颜色默认为[1,1,1,1],可以包含0到1之间的值,但是其他语言的rgba代码总是在0到255之间指定,我通常从任何web链接引用它们,如中所示

这甚至在各种python工具包示例pyQt库中都有帮助,但在kivy中则有所不同


有人知道为什么它是从0到1指定的吗?是否有任何方法可以将各种其他语言使用的值编码为kivy颜色代码。例如,如果我想将rgb(192192)更改为kivy颜色代码,该怎么办?

我想您可以将其除以255:

float_color = color / 255.0

如您所见,在Kivy中,前三个数字只是将RGB值重新缩放为0和1,最后一个是
alpha
。但是请记住,您可以设置模式,您可以使用hsv,而不是我想您不需要的。

为了避免一些分割并加快速度:


虽然这并不能真正回答问题,但另一个简单的方法是使用kivy的十六进制功能,kv lang中的一个例子:

#:import hex kivy.utils.get_color_from_hex
    canvas:
        Color:
            rgba: hex('#03A9F4')
查看更酷的功能,发现这个简单的东西,在这之前我经常去a转换十六进制到十进制rgb(因为我太懒了,不能将每个rgb值除以255)

:导入utils kivy.utils
:
按钮:
背景颜色:utils.从十六进制('#58AE6F')获取颜色。


这种方法的唯一问题是,您不能输入透明度,如果您希望使用透明度,您可以很好地使用我提到的获取“rgb”的小数,并在“rgba”中使用透明度百分比作为“a”值。

您可以执行以下操作

(**255**/255.0, **160**/255.0, **0**/255.0, 1)

因此,您需要做的是将RGB值除以255.0,这样上面的颜色将为您提供橙色。所有带有**的数字将为您的RBG颜色。

看起来它可以完成此任务:)我只想指出,这个例子中的注释不是注释,而是定义了
hex
函数。你可以使用这个页面来使用它。你只需要你想要的颜色的十六进制代码,然后你就可以使用开头显示的RGB值。如果他们也将十六进制添加到rgba中,那就太好了。