Skip to main content
 首页 » 编程设计

python之将 [0-255] 整数范围转换为 [0.0-1.0] 浮点范围

2025年05月04日11lori

在 WxWidget 中,颜色由 RGB 整数三元组表示。要使用 [0.0-1.0] 浮点三元组表示与其他库交互,需要进行转换。

WxPython、Numpy或Python中是否已经存在这样的转换函数?

请您参考如下方法:

您可以将每个元素除以 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)它没有显示任何错误,这意味着反向操作应该可以正常工作。