color.el: fix color-rgb-to-hsv computing
authorJulien Danjou <julien@danjou.info>
Fri, 11 Jan 2013 15:04:24 +0000 (15:04 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 11 Jan 2013 15:04:24 +0000 (15:04 +0000)
lisp/ChangeLog
lisp/color.el

index bbabcfb..502cc2f 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-11  Julien Danjou  <julien@danjou.info>
+
+       * color.el (color-rgb-to-hsv): Fix conversion computing in case min and
+       max are almost equal. Also return the correct value for V which is
+       already between 0 and 1.
+
 2013-01-11  Dmitry Antipov  <dmantipov@yandex.ru>
 
        * emacs-lisp/ert.el (ert-run-test): Use point-max-marker.
index 63326e7..50f6675 100644 (file)
@@ -130,7 +130,7 @@ inclusive."
         (max (max r g b))
         (min (min r g b)))
     (if (< (- max min) 1e-8)
-       (list 0.0 0.0 0.0)
+       (list 0.0 0.0 min)
       (list
        (/ (* 2 float-pi
             (cond ((and (= r g) (= g b)) 0)
@@ -146,7 +146,7 @@ inclusive."
                    (+ 240 (* 60 (/ (- r g) (- max min)))))))
          360)
        (if (= max 0) 0 (- 1 (/ min max)))
-       (/ max 255.0)))))
+       max))))
 
 (defun color-rgb-to-hsl (red green blue)
   "Convert RGB colors to their HSL representation.