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'将色调弹到全等:
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')并需要更新。 将它作为一个问题,首先根据贡献准则提出,而不是发出一份公关通知。 如果你想换就送一个吧
人工智能的援助被用来找到这个并进行上面的扫荡.
内容来源: bokeh/bokeh