function rgbtohsl(r, g, b) { var h var s var l var deltaR var deltaG var deltaB var min = Math.min(r, g, b) //Min. value of RGB var max = Math.max(r, g, b) //Max. value of RGB var delta = max - min //Delta RGB value l = (max + min) / 2 if (delta == 0) { h = 0 s = 0 } else { if (l < 0.5) { s = delta / (max + min) } else { s = delta / (2 - max - min) } deltaR = (((max - r) / 6) + (delta / 2)) / delta deltaG = (((max - g) / 6) + (delta / 2)) / delta deltaB = (((max - b) / 6) + (delta / 2)) / delta if (r == max) { h = deltaB - deltaG } else if (g == max) { h = (1/3) + deltaR - deltaB } else if (b == max) { h = (2/3) + deltaG - deltaR } if ( h < 0 ) { h += 1 } if ( h > 1 ) { h -+ 1 } } outlet(0, h, s, l) //outlet(1, s) //outlet(2, l) }