Вопрос снимается, нашел и перевел в JavaScript-code:
| Код | function HSLToRGB(Hue, Saturation, Luminance) { var R, G, B; var nH, nS, nL; var nF, nP, nQ, nT; var lH; if (Saturation > 0) { nH = Hue / 60; nL = Luminance / 100; nS = Saturation / 100; lH = parseInt(nH); nF = nH - lH; nP = nL * (1 - nS); nQ = nL * (1 - nS * nF); nT = nL * (1 - nS * (1 - nF)); switch (lH) { case 0: R = nL * 255; G = nT * 255; B = nP * 255; break; case 1: R = nQ * 255; G = nL * 255; B = nP * 255; break; case 2: R = nP * 255; G = nL * 255; B = nT * 255; break; case 3: R = nP * 255; G = nQ * 255; B = nL * 255; break; case 4: R = nT * 255; G = nP * 255; B = nL * 255; break; case 5: R = nL * 255; G = nP * 255; B = nQ * 255; break; } } else { R = (Luminance * 255) / 100; G = R; B = R; } HSLToRGB01 = RGBToLongSafe(R, G, B); } function RGBToLongSafe(R, G, B) { R = parseInt(xLimit(R, 0, 255)); G = parseInt(xLimit(G, 0, 255)); B = parseInt(xLimit(B, 0, 255)); alert( "R = " + R + "\n" + "G = " + G + "\n" + "B = " + B + "\n" ); } function xLimit(Value, Lower, Higher) { if (Value < Lower) Value = Lower; if (Value > Higher) Value = Higher; return Value; }
HSLToRGB(0, 0, 53); |
Кому интересно, вот: http://www.xbeat.net/vbspeed/c_HSLToRGB.htm |