0

我正在尝试为变量设置某些值。这些变量用于确定十六进制颜色是绿色、红色、蓝色、或绿色和红色、蓝色和红色,还是绿色和蓝色。

我试图设置的值是绿色和红色与红色还是绿色是有一定的数字范围,其中某些东西将被限定为绿色和红色,等等......

例如:FF0000 = 红色。A1A100 = 红色和绿色,A1C124 = 红色和绿色。

我的 A1C124 代码在我的脚本中会有问题,因为很难说

if
Red > Green or \
Red = Green and \
Red > Blue
    print red and green.

因为如果该代码要运行,任何明显是红色的东西也会变成绿色和红色。

因此,相反,我试图限制红色可以大于绿色,反之亦然。为此,我需要设置一个范围。

类似于以下内容:

redGreen = green +1
redGreen2 = green -1
redGreen3 = green + 2
redGreen4 = green - 2

然后我会设置这样的代码:

if red > blue and \
   green > blue:
    redGreen = green +1
    redGreen2 = green -1
    redGreen3 = green + 2
    redGreen4 = green - 2
    print "This colour is red and green"

但是有2个问题。

上面的代码不起作用,因为它只是将 +1 替换为 +2,对于负值也是如此,而且我一生都无法理解任何教我这一点的教程。

那么,有人知道如何设置范围吗?或者如果有更好的方法,你能解释一下它是什么吗?

4

1 回答 1

4

诚然,我没有设法完全关注你的帖子。但是,有可能将有问题的颜色转换为HSV 空间并仅查看色调值会简化您尝试做的事情。

Python 提供了colorsys.rgb_to_hsv()执行这种转换的函数。

于 2012-06-14T14:29:11.053 回答