Files
30-seconds-of-code/snippets/RGBToHSL.md
2020-10-02 01:46:30 +05:30

818 B

title, tags
title tags
RGBToHSL math,intermediate

Converts a RGB color tuple to HSL format.

  • Use the RGB to HSL conversion formula to convert to the appropriate format.
  • The range of all input parameters is [0, 255].
  • The range of the resulting values is H: [0, 360], S: [0, 100], L: [0, 100].
const RGBToHSL = ((r, g, b) => {
  r /= 255;
  g /= 255;
  b /= 255;
  const l = Math.max(r, g, b);
  const s = l - Math.min(r, g, b);
  const h = 
    (s) ? (l === r) ? (g-b)/s : (l === g) ? 2 + (b-r)/s : 4 + (r-g)/s : 0;
  return [ (60*h<0)?(60*h+360):(60*h) , 100*((s) ? (l<=0.5) ? s/((2*l-s)) : s/(2 - (2*l-s)) : 0), 100*(2*l-s)/2];
};
RGBToHSL(45, 23, 11); // [21.17647058823529, 60.71428571428573, 10.980392156862745]