我还没有找到一种算法/实现可以将 rgb(0, 96, 255)
转换为 HSL 并返回,而不会以稍微不同的值结束 (rgb(0 , 98, 255)
)。这意味着每个人的算法都被破坏了(包括 Wolfram|Alpha)——或者说 HSL 不能代表每一种 RGB 颜色。
哪个是正确的?
最佳答案
纳米是正确的——“HSL 可以表示每一种 RGB 颜色,但 HSL 不能四舍五入到最接近的整数。”
我最终对我编写的颜色类所做的是在内部将颜色存储为未舍入的 HSL。然后 RGB 和 HSL 的 getter 方法在调用时只是将它们四舍五入。这使得能够执行诸如更改色调和饱和度之类的操作,即使是在 RGB 颜色上,也不会得到不准确的转换。
仍然没有办法准确地转换舍入 RGB 和舍入 HSL,因此解决方案是永远不要将舍入 RGB 与舍入 HSL 相互转换。
关于algorithm - HSL 转换准确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485569/