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)。
从我这边开始使用 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)。