emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: list-colors-display: display all color names


From: Drew Adams
Subject: RE: list-colors-display: display all color names
Date: Wed, 5 Jan 2005 10:12:36 -0800

    >> it might be difficult for users to obtain corresponding hex values.
    > How about adding a function color-values-hex, which calls color-values
    > and then transforms the result into the hex #RGB notation?  Would that
    > fix this problem?

    A function is not a problem.  A simple piece of code like this
             (apply 'format " #%02x%02x%02x"
                     (mapcar (lambda (c) (lsh c -8)) (color-values color)))
    can do that.  Creating a special function with this code will not
    fix this problem since users might not be aware of such a function.
    Adding #RGB to every color name displayed by `list-colors-display'
    in the *Colors* buffer is a more practical solution.

Adding hex codes to `list-colors-display' is good.
Having functions to convert decimal RGB to hex and vice versa is also good.

    >> gray                    grey                                   bebebe
    >> light gray              light grey, LightGray, LightGrey       d3d3d3
    > First, if we do that, I'd suggest to use #BE12BE34BE56, i.e. prefix
    > with # and use 4 digits per color.

    4 digits per color?  Why?  The human eye can distinguish no
    more than about 400,000 colors (some say 10 million colors
    which is the largest estimation) and can identify far less colors.
    8 bits per color which encodes more than 16 million colors is
    completely enough (usually even 600 colors displayed by
    `list-colors-display' is enough).  I won't argue about why
    Emacs supports so many colors (10^14), but what I want to say
    is that using any format longer than #RRGGBB is too impractical.

Whatever number of digits is needed to represent a given color should be
used in `list-colors-display'. It may be unlikely, but if two available
colors differ only in the 4th red digit, then their displayed hex codes
should reflect that and not appear to be identical - regardless of whether
our eyes can distinguish them. If all available colors happen to fit the
#RRGGBB format, then that will be sufficient, but why shoe-horn all colors
into that format?

In general, regarding Emacs Lisp that manipulates hex RGB codes: Is there a
reason not to treat an _arbitrary_ number (3*n) of hex digits? Or not to use
a variable for the number of digits to be treated? See
http://www.emacswiki.org/elisp/hexrgb.el for food-for-thought examples.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]