通过lumMod / lumOff获取新的HSL颜色

时间:2014-02-21 06:52:43

标签: rgb hsl luminance

我这样做是否正确? 例如,我有一个RGB(165,165,165)并将其转换为HSL(Get(0,0,64.7))。 实际上我解析了xml,并且我有两个参数lumMod = '60 000'和lumOff = '40 000'(我知道这意味着我必须将L分量乘以0.6,然后将L加到0.4中)

Okey new_l = 0.647*0.6 + 0.4 = 0.7882

现在我从HSL(0,0,78.8)转换回RGB(198, 198, 198)

其实我需要得到RGB(183,183,183)。因为这是正确的答案。哪里错了?

1 个答案:

答案 0 :(得分:0)

经过一夜的调试,我已经成立了我的问题答案。

感谢来自this主题

的King Salemno
  

图表正在执行的算法,以下步骤是   进行:

     
      
  1. 获取他们感兴趣的基色RGB(例如Accent 3)

  2.   
  3. 转换为HSL

  4.   
  5. 将L分量乘以lumMod

  6.   
  7. 将lumOff添加到L组件

  8.   
  9. 转换回RGB

  10.         

    同样的逻辑也适用于satMod,satOff,hueMod,& hueOff。

但对于rgb-color,它只有一个值适用于所有级别(如(255,255,255)或(123,123,123))我将lumMod更改为lumMod = lumMod - 0.04(+-0.005)并执行相同操作lumoff参数。

所以,如果我有RGB(165,165,165)并将其转换为HSL(0,0,0.647)。 我改变HSL.L = HSL.L*(lumMod - 0.04) + (lumOff - 0.04) = 0.718后 现在我从HSL(0,0,0.718)转换回RGB(183,183,183)

我不知道为什么它会像这样工作,但它有效。我试图找出它。