Gnus development mailing list
 help / color / mirror / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: ding@gnus.org
Subject: Re: Colour manipulation
Date: Tue, 23 Nov 2010 10:15:56 -0600	[thread overview]
Message-ID: <87eiac9fsz.fsf@lifelogs.com> (raw)
In-Reply-To: <sa3aal0dohx.fsf@cigue.easter-eggs.fr>

On Tue, 23 Nov 2010 16:54:34 +0100 Julien Danjou <julien@danjou.info> wrote: 

JD> On Tue, Nov 23 2010, Ted Zlatanov wrote:
>> I would recommend to let users customize a color vision profile as part
>> of color-lab (see my original long explanation of my work with colors in
>> GUI design).  Maybe just a list of colors and their contrasting pairs
>> (with a reasonable set of defaults for each of the various kinds of
>> colorblindness), from which we can approximate what will look good
>> anywhere in the colorspace, will be sufficient.  The algorithms are nice
>> to have but not essential to the original requirement.

JD> That sounds like an option indeed. I'll probably use that if I can't do
JD> something better.

JD> Now, what I have in mind…

JD> I think the only colour blindness types we should consider are all forms
JD> of dichromacy. In that case, since we use RGB (hehe), dropping one of
JD> the 3 components (depending of the dichromacy type) and using the same
JD> computing could work.

JD> If I simulate protanopia with the following code and then correct it,
JD> this is what I got:
JD>  (let* ((fg "#ffaabb")
JD>         (bg "#aaffbb")
JD>         (fg-cb (mapcar (lambda (x) (/ x 256)) (x-color-values fg)))
JD>         (bg-cb (mapcar (lambda (x) (/ x 256)) (x-color-values bg))))
JD>    (shr-color-check
JD>     ;; No red color blindness
JD>     (apply 'format "#00%02X%02X" (cdr fg-cb))
JD>     (apply 'format "#00%02X%02X" (cdr bg-cb))))

JD> ==> ("#3effce" "#0096a6")

JD> I simulate it by setting red to 0, and let the code correct the color.
JD> It generates 2 new colors: #3effce #0096a6, which are 2 different blues.
JD> Even #3effce without the red component (#00ffce) seems visible.

JD> If I use 2 different reds like #ff0000 and #bb0000 it generates black
JD> and grey: #000000 and #5e5e5e. The grey is probably viewed as #005e5e
JD> which is some green-blue, and should be visible.

JD> This is probably not perfect, but is this good enough? Any color blind
JD> people in there? :)

You can test at http://colorschemedesigner.com/

The colors you mentioned looked OK to me and yes, killing the red is
probably a good way to fix it for most people (maybe it's as simple as a
custom set of RGB adjustment constants for general use?).  You may want
to take the discussion to emacs-devel to find both more opinions and
more testers.  There may be someone that knows about existing similar
work for Emacs Lisp; I already searched but didn't find any.

Ted




  reply	other threads:[~2010-11-23 16:15 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E1PArgx-0006dS-00@quimby.gnus.org>
2010-10-26 23:58 ` [gnus git] branch master updated: =1= shr.el (shr-tag-div): Added Lars Magne Ingebrigtsen
2010-10-27  0:15   ` Katsumi Yamaoka
2010-10-27  0:22     ` Katsumi Yamaoka
2010-10-27  0:28     ` Lars Magne Ingebrigtsen
2010-10-27  0:43       ` Katsumi Yamaoka
2010-10-27 18:06   ` Ted Zlatanov
2010-10-29 23:18     ` Lars Magne Ingebrigtsen
2010-11-09 22:25       ` Ted Zlatanov
2010-11-09 22:47         ` Lars Magne Ingebrigtsen
2010-11-09 23:02           ` Steinar Bang
2010-11-10  9:54           ` Julien Danjou
2010-11-10 17:49             ` Colourspace (was: [gnus git] branch master updated: =1= shr.el (shr-tag-div): Added.) Lars Magne Ingebrigtsen
2010-11-10 19:09               ` Colourspace Julien Danjou
2010-11-10 19:44                 ` Colourspace Ted Zlatanov
2010-11-10 19:56                   ` Colourspace Julien Danjou
2010-11-10 20:22                     ` ELPA and Gnus (was: Colourspace) Ted Zlatanov
2010-11-10 20:48                       ` ELPA and Gnus Lars Magne Ingebrigtsen
2010-11-10 21:23                         ` Ted Zlatanov
2010-11-10 21:32                           ` Lars Magne Ingebrigtsen
2010-11-11 13:19                             ` Ted Zlatanov
2010-11-14 16:07                               ` Lars Magne Ingebrigtsen
2010-11-15 15:43                               ` Julien Danjou
2010-11-11  9:06                         ` Julien Danjou
2010-11-14 16:07                           ` Lars Magne Ingebrigtsen
2010-11-10 20:48                 ` Colourspace Lars Magne Ingebrigtsen
2010-11-10 20:55                   ` Colourspace Lars Magne Ingebrigtsen
2010-11-11  8:59                     ` Colourspace Julien Danjou
2010-11-18 18:49               ` Colourspace Ted Zlatanov
2010-11-10 13:14           ` [gnus git] branch master updated: =1= shr.el (shr-tag-div): Added Ted Zlatanov
2010-11-19 16:13           ` Julien Danjou
2010-11-21  4:40             ` Lars Magne Ingebrigtsen
2010-11-21 13:55               ` Julien Danjou
2010-11-21 18:38                 ` Colour manipulation (was: [gnus git] branch master updated: =1= shr.el (shr-tag-div): Added.) Lars Magne Ingebrigtsen
2010-11-21 18:55                   ` Colour manipulation Julien Danjou
2010-11-21 19:02                     ` Lars Magne Ingebrigtsen
2010-11-21 19:26                       ` Julien Danjou
2010-11-21 19:42                         ` Lars Magne Ingebrigtsen
2010-11-22 14:49                         ` Julien Danjou
2010-11-24  2:27                           ` Katsumi Yamaoka
2010-11-24  5:45                             ` Katsumi Yamaoka
2010-11-24  6:39                               ` Lars Magne Ingebrigtsen
2010-11-24  8:43                                 ` Julien Danjou
2010-11-24 20:37                                   ` Lars Magne Ingebrigtsen
2010-11-24 20:48                                     ` Lars Magne Ingebrigtsen
2010-11-24 21:18                                     ` Julien Danjou
2010-11-24 21:27                                       ` Lars Magne Ingebrigtsen
2010-11-24  8:52                               ` Julien Danjou
2010-11-24  6:39                             ` Lars Magne Ingebrigtsen
2010-11-24  8:37                             ` Julien Danjou
2010-11-22 15:37                         ` Julien Danjou
2010-11-22 15:59                           ` Lars Magne Ingebrigtsen
2010-11-23  1:38                             ` Lars Magne Ingebrigtsen
2010-11-23  9:15                               ` Julien Danjou
2010-11-23 23:50                                 ` Lars Magne Ingebrigtsen
2010-11-23  9:48                               ` Julien Danjou
2010-11-23 23:52                                 ` Lars Magne Ingebrigtsen
2010-11-21 19:57                     ` Frank Schmitt
2010-11-22 19:47                     ` Ted Zlatanov
2010-11-23  9:10                       ` Julien Danjou
2010-11-23 14:52                         ` Ted Zlatanov
2010-11-23 15:54                           ` Julien Danjou
2010-11-23 16:15                             ` Ted Zlatanov [this message]
2010-11-23 18:32                               ` Colour blindness correction (was: Colour manipulation) Julien Danjou
2010-11-23 23:50                             ` Colour manipulation Lars Magne Ingebrigtsen
2010-11-24  8:32                               ` Julien Danjou
2010-11-26 20:17                             ` Adam Sjøgren
2010-11-24  1:09                         ` Greg Troxel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eiac9fsz.fsf@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).