24 位颜色解码帮助 (python)

24-Bit color decoding help (python)

从我这边开始使用 LED 灯带,我使用函数 Color(0-255, 0-255, 0-255) 表示 rgb,该函数编码为 24 位颜色并写在下面

Def Color(red, green, blue, white = 0):
    """Convert the provided red, green, blue color to a 24-bit color value.
       Each color component should be a value 0-255 where 0 is the lowest intensity
       and 255 is the highest intensity."""
    Return (white << 24) | (red << 16) | (green << 8) | blue

后来我用另一个函数检索了这个 24 位颜色,我需要将它解码回 (0-255, 0-255, 0-255) 我不知道该怎么做...

我使用打印功能查看发生了什么,

一个像素(红0,绿255,蓝0)returns16711680

一个像素(红255,绿0,蓝0)returns65280

一个像素(红色 0,绿色 0,蓝色 255)returns 255 对我来说有意义

我如何解码这个 efficiently/quickly(运行 on rpi zero w)必须在 python

全彩色像素有红色、绿色、蓝色(24 位)或 alpha、红色、绿色、蓝色(32 位)(子像素顺序可能不同!),而不是白色、红色、绿色、蓝色。 Alpha = 不透明度。

要解码 RGB 24 位(按此顺序):

B = pixel & 0xff
G = (pixel >> 8) & 0xff
R = (pixel >> 16) & 0xff

其中 0xff = 255,& = 按位与,>> = 右移 n 位(或除以 2^n)。

对于其他像素编码,顺序将会改变(您也可能有 alpha)。