我还没有找到一个可以将rgb(0, 96, 255)
转换为HSL并返回的算法/实现,而不会得到稍微不同的值(rgb(0, 98, 255)
)。这意味着每个人的算法都被破坏了(包括Wolfram | Alpha) - 或者HSL不能代表每种RGB颜色。
哪个是对的?
答案 0 :(得分:1)
牛米。是正确的 - “HSL可以代表每种RGB颜色,但HSL舍入到最接近的整数不能。”
我最后用我正在编写的颜色类进行的操作是将颜色内部存储为未连接的HSL。然后RGB和HSL的getter方法在调用时将它们舍入。这样就可以改变色调和饱和度,甚至可以改变RGB颜色,而不会产生不准确的转换。
仍然无法准确转换圆形RGB和圆形HSL,因此解决方案是永远不要将圆形RGB转换为圆形HSL或从圆形HSL转换。