您可以将每个元素除以 255(或 256,具体取决于您希望上限范围包含还是排除 1):
pax> python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> rgbvar1 = [80,160,240] ; rgbvar1
[80, 160, 240]
>>> rgbvar2 = [x / 255.0 for x in rgbvar1] ; rgbvar2
[0.3137254901960784, 0.6274509803921569, 0.9411764705882353]
>>> rgbvar3 = [round(x * 255) for x in rgbvar2] ; rgbvar3
[80, 160, 240]
正如你可以看到的rgbvar3
,您可以使用类似的方法将它们转换回来。
要检查其是否有效,以下内容可能会有所帮助:
>>> for i in range(256):
... j = i / 255.0
... k = round(j * 255)
... if i != k:
... print('Bad at %d'%(i))
...
>>>
事实上,它显示预期的可能输入值(整数)没有错误0
通过255
) 意味着反向操作应该可以正常工作。