2014-02-21 52 views
0

我是否正确地做到这一点? 例如,我有一个RGB(165,165,165)并将其转换为HSL(Get(0,0,64.7))。 其实我解析xml,在那里我有两个参数lumMod ='60 000'和lumOff ='40 000'(据我所知,这意味着我必须乘以0.6的L分量,然后将0.4添加到L分量)lumMod/lumOff获取新的HSL颜色

欧凯new_l = 0.647*0.6 + 0.4 = 0.7882

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

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

回答

0

经过整夜调试,我已经找到了回答我的问题。

由于从this话题

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

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

  2. 转换为HSL

  3. 乘以lumMod

    L成分
  4. 添加lumOff到L成分

  5. 转换回RGB

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

但对于RGB色,其具有用于各级只有一个值(例如为(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(183183183)后

我不知道为什么这样的工作,但它的工作。我试图找出它。