#15438·bokeh

RGB.to_hsl 会将色相四舍五入到整数度,因此 RGB -> HSL -> RGB 对约 41% 的颜色会产生损失

作者: dylanpulver创建于 2026年9月10日更新于 2026年9月10日

软件版本

bokeh 3.1.0, Python 3.14.7 马可士. 在`src/bokeh/colors/color.py'中的 " main " 上也有同样的代码。

QQ 浏览器名称和版本

没有,纯Python。

Jupyter笔记本/Jupyter实验室版本

不详。

预期行为

`RGB (.).to hsl (.).to rgb ()' 返回它开始的颜色。

观察行为

它为大约41%的输入返回不同的颜色.

`RGB.to-hsl'将色调弹到全等:

2zz
h, l, s = colorys.rgb to hls(self.r/255.,自.g/255.,自.b/255.).
返回 HSL( 圆( h*360), s, l, self.a)

s'和l'保持全浮精度,而HSL.-init ' 将h'作为活体'进行注释,因此只将色调进行量化。 高饱和度时,每道1个度值可达2 255个。

每频道扫取第5个值,140,608个颜色:

QQ 颜色改变 QQ 最糟糕的频道错误 QQ |.

h*360 ' 代替回合(h*360)' = 0 = 140 608 = 0.

示例代码

从 bokeh.colors 导入 RGB
c = RGB(0、5、200)
print (c.to hsl (.).to rgb ()) # RGB(0, 7, 200, 1.0)

QQ 堆放回溯或浏览器控制台输出

无, 无错误 。

-- -- . . .

舍入四舍五入将使至-hsl (.).h'从int'改为活',因此,这是一种行为改变,而不是纯粹的固定。 tests/unit/bokeh/colors/test color colors.py'标出四舍五入的数值(`assert c2.h ==24')并需要更新。 将它作为一个问题,首先根据贡献准则提出,而不是发出一份公关通知。 如果你想换就送一个吧

人工智能的援助被用来找到这个并进行上面的扫荡.