From: Julien Danjou <julien@danjou.info>
To: Ted Zlatanov <tzz@lifelogs.com>
Cc: ding@gnus.org, emacs-devel@gnu.org
Subject: Colour blindness correction (was: Colour manipulation)
Date: Tue, 23 Nov 2010 19:32:31 +0100 [thread overview]
Message-ID: <87sjyrhow0.fsf_-_@keller.adm.naquadah.org> (raw)
In-Reply-To: <87eiac9fsz.fsf@lifelogs.com> (Ted Zlatanov's message of "Tue, 23 Nov 2010 10:15:56 -0600")
On Tue, Nov 23 2010, Ted Zlatanov wrote:
> 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.
Good idea. I'm following up to emacs-devel as well, so maybe there some
people willing to help.
Having at least a function to simulate blindness like on
http://colorschemedesigner.com/ would be helpful to enhance
shr-color-check.
--
Julien Danjou
// ᐰ <julien@danjou.info> http://julien.danjou.info
next prev parent reply other threads:[~2010-11-23 18:32 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
2010-11-23 18:32 ` Julien Danjou [this message]
2010-11-23 23:50 ` 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=87sjyrhow0.fsf_-_@keller.adm.naquadah.org \
--to=julien@danjou.info \
--cc=ding@gnus.org \
--cc=emacs-devel@gnu.org \
--cc=tzz@lifelogs.com \
/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).