【发布时间】:2015-10-14 11:41:21
【问题描述】:
我有两个函数,一个从给定的整数返回 RGB 值,另一个函数执行相反的操作,为它提供 RGB 值,它返回一个整数。我正在通过查看我转换为 RGB 的整数是否从 RGB 返回到原始整数值来对此进行测试,但是我得到了不同的值。
def getRGBfromI(RGBint):
blue = RGBint & 255
green = (RGBint >> 8) & 255
red = (RGBint >> 16) & 255
return red, green, blue
def getIfromRGB(rgb):
red = rgb[0]
green = rgb[1]
blue = rgb[2]
print red, green, blue
RGBint = (red<<16) + (green<<8) + blue
return RGBint
测试:
i1 = 2147483647
colr1 = getRGBfromI(i1)
print colr1 # returns (255,255,255)
i2 =getIfromRGB(colr1)
print i1, i2 # returns 2147483647 16777215
对我来说,getRGBfromI() 似乎是正确的,而 getIfromRGB() 是不正确的,但我也可能错了。
【问题讨论】:
-
它们都工作正常,因为 0xFFFFFF 是 16777215
标签: python colors integer rgb argb