Python 获取RGB颜色

Python 获取RGB颜色,python,colors,rgb,Python,Colors,Rgb,因此,我正在研究如何根据需要检索的颜色总数获取RGB颜色列表,我找到了这段代码。还有一部分我不明白,我已经阅读了注释,其中“>>”和“&”运算符是位运算符,但我不能完全理解它们在做什么 有人能帮我理解颜色值所在的部分吗 你被分配了吗 def getDinstinctRGBColorsList(desiredColors) availableColors = 16000000 inc = availableColors/desiredColors colorsList =

因此,我正在研究如何根据需要检索的颜色总数获取RGB颜色列表,我找到了这段代码。还有一部分我不明白,我已经阅读了注释,其中“>>”和“&”运算符是位运算符,但我不能完全理解它们在做什么

有人能帮我理解颜色值所在的部分吗 你被分配了吗

def getDinstinctRGBColorsList(desiredColors)
    availableColors = 16000000
    inc = availableColors/desiredColors
    colorsList = {}
    RGB = 0
    count = 0
    while count <= desiredColors:
        RGB = RGB+inc
        colorBlue = RGB & 255
        colorGreen = (RGB >> 8) & 255
        colorRed = (RGB >> 16) & 255
        colorsList[count] = str(colorRed) + "," + str(colorGreen) + "," + str(colorBlue)
        count += 1
    return colorsList
def getDinstinctRGBColorsList(所需颜色)
可用颜色=16000000
inc=可用颜色/所需颜色
colorsList={}
RGB=0
计数=0
计数>8)和255时
彩色=(RGB>>16)和255
colorsList[count]=str(彩色红色)+“,”+str(彩色绿色)+“,”+str(彩色蓝色)
计数+=1
返回颜色列表
请参阅和

从您发布的代码中看,<>代码> RGB 包含24位颜色信息:8位为红色,8位为绿色,8位为蓝色,最左边为8位的红色数据,中间8位的绿色数据,最右边8位的蓝色数据。 想象一下

RGB
的位看起来像
0brrrrrrrrggggggbbbbbbbbbb
其中
r
是红色值的位,
g
是绿色值的位,
b
是蓝色值的位

请注意,二进制中的
255
0b11111111
(8个设置位)

colorGreen=(RGB>>8)&255正在使用
>
(右移)和
&
(按位和)提取表示绿色的中间8位:

0brrrrrrggggggbbbbbbbbbb>>8
收益率
0b0000000rrrrrrrrgggggggggggg

请注意,绿色的位现在是最左边的8位。但是,红色的位仍然存在

0b0000000rrrrrrgggggggg&0b000000000000000111111
收益率
0b000000000000000gggggggggggg

请注意,如何只保留绿色的位


编辑:这是一个简化。在Python中,
>
是一个算术移位,而不是逻辑移位。算术移位保留符号。有关更详细的说明,请参阅

&
是位and运算符
>
是按位右移运算符。它们都是你可以通过简单的搜索找到的。谢谢你,我在试图理解这一点时感到头疼。