Java将亮度调整为颜色

时间:2016-07-23 18:07:32

标签: java colors rgb hsl

假设我有Color。我提取rgb值。

假设

  • r = 90
  • g = 240
  • b = 8

我还有来自L value的{​​{1}}。 HSL没有别的东西。

亮度(L)的说明:

L var可以取0到1之间的值。

  • 如果它是HSL那么它就更亮了。 // 1是白色
  • 如果它是>0.5那么它会变暗。 // 0为黑色
  • 如果它是<0.5那么它就是中立的。

所以我的问题是:

如何使用L值更改rgb值?

例如,如果L = 0.45,则rgb值略微减小。 否则,如果L = 0.8,则rgb值会增加很多。 如果它对answear有帮助,我也会用Java编写。

1 个答案:

答案 0 :(得分:1)

答案是:

如果L < 0.5

r' = r - r * 2 * (0.5 - L);
g' = g - g * 2 * (0,5 - L);
b' = b - b * 2 * (0,5 - L);

否则L > 0.5然后

r' = r + (255 - r) * 2 * (L - 0.5);
g' = g + (255 - g) * 2 * (L - 0.5);
b' = b + (255 - b) * 2 * (L - 0.5);

如果L = 0.5 rgb值保持原样。