【问题标题】:convert rgba color codes 255,255,255,255 to kivy color codes in 1,1,1,1将 rgba 颜色代码 255,255,255,255 转换为 1,1,1,1 中的 kivy 颜色代码
【发布时间】:2014-05-20 20:47:22
【问题描述】:

为了在 kivy 中指定任何颜色值,我们需要指定从 0 到 1 的值,即 颜色默认为 [1,1,1,1] 并且可以包含介于 0 和 1 之间的值,但是对于其他语言很容易使用的 rgba 代码始终指定为 0 到 255,我通常从任何 Web 链接引用它们,如 http://www.rapidtables.com/web/color/RGB_Color.htm

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

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

【问题讨论】:

  • 你可以使用这个页面https://www.colorhexa.com/00274d使用它你只需要你想要的颜色的十六进制代码,然后你可以使用开始出现的RGB值。

标签: python colors kivy


【解决方案1】:

我认为您可以将其除以 255:

float_color = color / 255.0

【讨论】:

  • 看起来它在做这项工作:)
【解决方案2】:

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

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

【讨论】:

  • 我只想指出,这个例子中的 COMMENT 不是注释,而是实际上定义了 hex 函数
【解决方案3】:

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

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

【讨论】:

  • 如果他们也将十六进制添加到 rgba 会很棒。
【解决方案4】:

查看kivy.utils 以获得更酷的功能,发现这个简单的东西,在此之前我曾经去site 将十六进制转换为十进制 rgb(因为我懒得将每个 rgb 值除以 255。

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

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

      您可以执行以下操作。

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

      所以你需要做的是将你的 RGB 值除以 255.0,所以上面的颜色会给你橙色。所有带 ** 的数字都是您的 RBG 颜色。

      【讨论】:

        【解决方案7】:

        我想在这里注册一种不太传统的解决问题的方法:

        # file: "func.py"
        
        # color convert
        def cc(color):
            return color/255
        

        我们的想法是创建一个函数文件并将其导入到您的 .kv 文件中,如下所示:

        #:import cc func.cc
        
        <YourBuildClass>:
            BoxLayout:
                canvas:
                    Color:
                        rgb: 0, cc(102), cc(173)
                    Rectangle:
                        pos: self.pos
                        size: self.size
        

        在我看来,它更有条理和干净。

        注意:我使用的是谷歌翻译,如有拼写错误,请见谅。 . .

        【讨论】:

          猜你喜欢
          • 2012-07-07
          • 2012-05-14
          • 2016-08-09
          • 1970-01-01
          • 2015-04-12
          • 2013-10-13
          • 1970-01-01
          • 2018-10-03
          相关资源
          最近更新 更多