【发布时间】:2021-03-22 17:16:40
【问题描述】:
使用我的 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 中
【问题讨论】:
-
当您使用 32 位 RGBW 时,为什么要谈论 24 位 RGB?而这里的白色是什么意思?
-
你的红色和绿色可能会混淆,我想。十六进制值 16711680 == 0xff0000。在这里,每两个十六进制数字代表一种颜色,根据您的值,您就有 GRB。正如 Danny 在他的回答中正确指出的那样,您需要查看位移和位掩码以获得您正在寻找的值。
-
嘿,这个函数不是我的代码,我猜是因为 LED 灯带是否有 RGBW,但我的灯带没有,所以它只是 RGB
标签: python image decode rgb neopixel