假设我有Color
。我提取rgb
值。
假设
我还有来自L value
的{{1}}。 HSL没有别的东西。
L var可以取0到1之间的值。
HSL
那么它就更亮了。 // 1是白色 >0.5
那么它会变暗。 // 0为黑色 <0.5
那么它就是中立的。所以我的问题是:
如何使用L值更改rgb值?
例如,如果L = 0.45,则rgb值略微减小。 否则,如果L = 0.8,则rgb值会增加很多。 如果它对answear有帮助,我也会用Java编写。
答案 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值保持原样。