Function: color-rgb-to-hsl
color-rgb-to-hsl is a byte-compiled function defined in color.el.gz.
Signature
(color-rgb-to-hsl RED GREEN BLUE)
Documentation
Convert RGB colors to their HSL representation.
RED, GREEN, and BLUE should each be numbers between 0.0 and 1.0, inclusive. Return a list (HUE SATURATION LUMINANCE), where each element is between 0.0 and 1.0, inclusive.
Source Code
;; Defined in /usr/src/emacs/lisp/color.el.gz
(defun color-rgb-to-hsl (red green blue)
"Convert RGB colors to their HSL representation.
RED, GREEN, and BLUE should each be numbers between 0.0 and 1.0,
inclusive. Return a list (HUE SATURATION LUMINANCE), where
each element is between 0.0 and 1.0, inclusive."
(let* ((r red)
(g green)
(b blue)
(max (max r g b))
(min (min r g b))
(delta (- max min))
(l (/ (+ max min) 2.0)))
(if (= delta 0)
(list 0.0 0.0 l)
(let* ((s (if (<= l 0.5) (/ delta (+ max min))
(/ delta (- 2.0 max min))))
(rc (/ (- max r) delta))
(gc (/ (- max g) delta))
(bc (/ (- max b) delta))
(h (mod
(/
(cond
((= r max) (- bc gc))
((= g max) (+ 2.0 rc (- bc)))
(t (+ 4.0 gc (- rc))))
6.0)
1.0)))
(list h s l)))))