GNU bug report logs - #14074
24.3.50; Convert hsv to rgb

Previous Next

Package: emacs;

Reported by: Jambunathan K <kjambunathan <at> gmail.com>

Date: Thu, 28 Mar 2013 15:00:02 UTC

Severity: wishlist

Found in version 24.3.50

Done: Jambunathan K <kjambunathan <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Jambunathan K <kjambunathan <at> gmail.com>
Subject: bug#14074: closed (Re: bug#14074: 24.3.50; Convert hsv to rgb)
Date: Fri, 15 Nov 2013 04:09:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#14074: 24.3.50; Convert hsv to rgb

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 14074 <at> debbugs.gnu.org.

-- 
14074: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14074
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Jambunathan K <kjambunathan <at> gmail.com>
To: 14074-done <at> debbugs.gnu.org
Subject: Re: bug#14074: 24.3.50; Convert hsv to rgb
Date: Tue, 01 Jan 2002 06:11:23 +0530
The snippet I shared is not usable within Emacs.  As OP closing it.

[Message part 3 (message/rfc822, inline)]
From: Jambunathan K <kjambunathan <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; Convert hsv to rgb
Date: Thu, 28 Mar 2013 20:26:15 +0530
[Message part 4 (text/plain, inline)]
Convert hsv to rgb.

Here is a little test case.

    (let ((color-name (format "#%06x" (random #xffffff))))
      (format "color-name: %s  round-tripped: %s"
              color-name
              (apply 'color-rgb-to-hex 
                     (apply 'color-hsv-to-rgb 
                            (apply 'color-rgb-to-hsv 
                                   (color-name-to-rgb color-name))))))

    => "color-name: #01043d  round-tripped: #01033d"
    => "color-name: #1278e2  round-tripped: #1278e2"
    => "color-name: #ffb4bd  round-tripped: #ffb4bd"

One can use `color-hsv-to-rgb' for example in `vc-annotate-color-map'.

[Message part 5 (text/x-diff, inline)]
=== modified file 'lisp/ChangeLog'
*** lisp/ChangeLog	2013-03-27 16:03:15 +0000
--- lisp/ChangeLog	2013-03-28 14:36:48 +0000
***************
*** 1,3 ****
--- 1,7 ----
+ 2013-03-28  Jambunathan K  <kjambunathan <at> gmail.com>
+ 
+ 	* color.el (color-hsv-to-rgb): New defun.
+ 
  2013-03-27  Eli Zaretskii  <eliz <at> gnu.org>
  
  	* facemenu.el (list-colors-callback): New defvar.

=== modified file 'lisp/color.el'
*** lisp/color.el	2013-01-11 15:04:24 +0000
--- lisp/color.el	2013-03-28 14:40:31 +0000
***************
*** 118,123 ****
--- 118,148 ----
    "Return the color that is the complement of COLOR, in hexadecimal format."
    (apply 'color-rgb-to-hex (color-complement color)))
  
+ (defun color-hsv-to-rgb (h s v)
+   "Convert HSV color components to RGB.
+ HUE should be in radians between 0 and 2*`float-pi', inclusive.
+ SATURATION and VALUE should be between 0.0 and 1.0, inclusive.
+ Return a list (RED GREEN BLUE) where each of the components is
+ between 0.0 and 1.0, inclusive."
+   ;; Convert h from radians to degrees
+   (setq h (/ (* 180.0 h) float-pi))
+   (when (>= h 360) (setq h 0.0))
+   (if (zerop s)
+       (list v v v)
+     (let* ((h (/ h 60.0))
+ 	   (i (floor h))
+ 	   (f (- h i))
+ 	   (l (* v (- 1 s)))
+ 	   (m (* v (- 1 (* s f))))
+ 	   (n (* v (- 1 (* s (- 1 f))))))
+       (cond
+        ((= i 0) (list v n l))
+        ((= i 1) (list m v l))
+        ((= i 2) (list l v n))
+        ((= i 3) (list l m v))
+        ((= i 4) (list n l v))
+        ((= i 5) (list v l m))))))
+ 
  (defun color-rgb-to-hsv (red green blue)
    "Convert RGB color components to HSV.
  RED, GREEN, and BLUE should each be numbers between 0.0 and 1.0,

[Message part 6 (text/plain, inline)]

In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
 of 2013-03-28 on debian-6.05
Bzr revision: 112161 eliz <at> gnu.org-20130327160315-f4jh29xefzj11qgu
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
Important settings:
  value of $LANG: en_IN
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t




This bug report was last modified 11 years and 193 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.