我有两个函数,一个从给定的整数返回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()函数则不正确,但是我也可能是错的。