-1

从我的角度使用 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)返回 16711680

一个像素(红色 255,绿色 0,蓝色 0)返回 65280

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

我如何才能有效/快速地解码(在 rpi 零 w 上运行)必须在 python 中

4

1 回答 1

0

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

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

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

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

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

于 2020-12-11T09:41:18.720 回答