2012-08-02 131 views
1

我已经根据HSL-> RGB和HSV-> RGB算法实现了一些功能。
他们大多数工作正常,但我不知道什么是正确的事情做,然后颜色组件溢出作为转换的结果。在RGB和HSL/HSV之间转换:如何处理溢出?

例如,红色分量最终为1.2,而允许的范围是[0..1]。如果我乘以255,我显然会得到一个在RGB世界中无效的值。

处理这个问题的正确方法是什么? - 截断(if > 1 then set to 1)或包装(if > 1 then substract 1)?

回答

1

如果您已正确实施标准算法并且输入处于其范围内,则R,G和B值不可能超出其范围。

你已经实现了哪些算法?

+0

来自[wikipedia]的那些(http://ru.wikipedia.org/wiki/HSL)。现在我已经研究过它们,它们看起来与[英文同行](http://en.wikipedia.org/wiki/HSL_color_space#From_HSL)完全不同...... – GSerg 2012-08-10 23:39:19

+0

请参阅此处的示例:http:// mjijackson的.com/2008/02/RGB到HSL和 - RGB到HSV色模型变换的算法,在JavaScript的 – boscarol 2012-08-11 00:13:03