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

2024-05-13 18:47:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 函数numpy颜色wxpython整数rgb浮点三元组
1条回答
网友
1楼 · 发布于 2024-05-13 18:47:25

您只需将每个元素除以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))
... 
>>>

对于预期的可能输入值(整数0255)来说,它没有显示错误,这意味着反向操作应该可以正常工作。

相关问题 更多 >