I have two functions, one to return RGB values from a given Integer, and the other function does the reverse, providing it with RGB values it returns an Integer. I'm testing this by seeing if the integer i convert to RGB turns back from RGB into the original integer value, but I'm getting different values.
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
the test:
i1 = 2147483647
colr1 = getRGBfromI(i1)
print colr1 # returns (255,255,255)
i2 =getIfromRGB(colr1)
print i1, i2 # returns 2147483647 16777215
To me it seems like the getRGBfromI() is correct and the getIfromRGB() is incorrect, but I may be wrong about that too.