将rgba颜色代码255,255,255,255转换为kivy颜色代码1,1,1,1

16 投票
8 回答
30208 浏览
提问于 2025-04-18 01:50

在kivy中,要指定任何颜色值,我们需要使用0到1之间的数值。默认的颜色是[1,1,1,1],这个范围的值可以在0到1之间。不过,其他编程语言常用的rgba代码是从0到255的。我通常会通过一些网页链接来查找这些颜色代码,比如这个:http://www.rapidtables.com/web/color/RGB_Color.htm

这种方式在各种Python工具包中都很有用,比如pyQt库,但在kivy中就不一样了。

有没有人知道为什么kivy的颜色值要用0到1的范围?有没有办法把其他语言使用的颜色值转换成kivy的颜色代码?比如,如果我想把rgb(192,192,192)转换成kivy的颜色代码,该怎么做呢?

8 个回答

2

你可以这样做。

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

你需要把你的RGB值除以255.0,这样上面的颜色就会变成橙色。所有带有**的数字就是你的RGB颜色。

5

可以去看看 kivy.utils,里面有很多很酷的功能。我之前总是去一个 网站 把十六进制颜色转换成十进制的 RGB 值,因为我懒得把每个 RGB 值都除以 255。

#:import utils kivy.utils <MainWindow>: Button: background_color: utils.get_color_from_hex('#58AE6F')

不过这种方法有个小问题,就是你不能设置透明度。如果你想用透明度的话,可以去我提到的那个 网站 获取 RGB 的十进制值,然后把透明度的百分比当作 'a' 值放在 'rgba' 里。

8

为了避免一些除法运算并提高速度:

http://www.corecoding.com/utilities/rgb-or-hex-to-float.php

15

虽然这并没有直接回答问题,但还有一种简单的方法是使用kivy的十六进制特性,下面是一个在kv语言中的例子:

#:import hex kivy.utils.get_color_from_hex
    canvas:
        Color:
            rgba: hex('#03A9F4')
24

我觉得你可以直接用255来除一下:

float_color = color / 255.0

撰写回答