NS_HSL2RGB(float h, float s, float l) { PRUint8 r, g, b; float m1, m2; if (l <= 0.5f) { m2 = l*(s+1); } else { m2 = l + s - l*s; } m1 = l*2 - m2; r = PRUint8(255 * HSL_HueToRGB(m1, m2, h + 1.0f/3.0f)); g = PRUint8(255 * HSL_HueToRGB(m1, m2, h)); b = PRUint8(255 * HSL_HueToRGB(m1, m2, h - 1.0f/3.0f)); return NS_RGB(r, g, b); }
Color HSL2RGB(float h, float s, float l) { uint8 r, g, b; float m1, m2; if (l <= 0.5f) { m2 = l*(s + 1); } else { m2 = l + s - l*s; } m1 = l * 2 - m2; r = uint8(255 * HSL_HueToRGB(m1, m2, h + 1.0f / 3.0f)); g = uint8(255 * HSL_HueToRGB(m1, m2, h)); b = uint8(255 * HSL_HueToRGB(m1, m2, h - 1.0f / 3.0f)); return ColorSetRGB(r, g, b); }