如何将RGB整数转换为相应的RGB元组(R,G,B)?看起来很简单,但我在谷歌上找不到任何东西。
我知道对于每个RGB (r,g,b),你有一个整数n = r256^2 + g256 + b,我如何在Python中解决相反的问题,IE给定一个n,我需要r,g,b的值。
发布于 2010-02-15 02:06:31
我当然不是Python专家,但据我所知,它的运算符与C语言相同。
如果是这样的话,这应该是可行的,而且它也应该比使用模和除法快得多。
Blue = RGBint & 255
Green = (RGBint >> 8) & 255
Red = (RGBint >> 16) & 255它如何屏蔽每种情况下的最低字节(二进制与255.等于8个1比特)。对于绿色和红色分量,它执行相同的操作,但首先将颜色通道转换到最低的字节。
发布于 2010-02-15 01:59:09
从RGB整数:
Blue = RGBint mod 256
Green = RGBint / 256 mod 256
Red = RGBint / 256 / 256 mod 256一旦您知道如何获取它,就可以非常简单地实现它。:)
更新:新增python函数。不确定是否有更好的方法,但这适用于Python 3和2.4
def rgb_int2tuple(rgbint):
return (rgbint // 256 // 256 % 256, rgbint // 256 % 256, rgbint % 256)还有一个很好的解决方案,它使用了位移位和掩码,无疑比Nils Pipenbrinck发布的要快得多。
发布于 2010-11-28 18:05:10
>>> import struct
>>> str='aabbcc'
>>> struct.unpack('BBB',str.decode('hex'))
(170, 187, 204)
for python3:
>>> struct.unpack('BBB', bytes.fromhex(str))和
>>> rgb = (50,100,150)
>>> struct.pack('BBB',*rgb).encode('hex')
'326496'
for python3:
>>> bytes.hex(struct.pack('BBB',*rgb))https://stackoverflow.com/questions/2262100
复制相似问题