Gnus development mailing list
 help / color / mirror / Atom feed
From: Julien Danjou <julien@danjou.info>
To: ding@gnus.org
Subject: Re: [gnus git]  branch master updated: =1= shr.el (shr-tag-div): Added.
Date: Sun, 21 Nov 2010 14:55:59 +0100	[thread overview]
Message-ID: <87oc9ihjbk.fsf@keller.adm.naquadah.org> (raw)
In-Reply-To: <m3mxp3z3u9.fsf@quimbies.gnus.org> (Lars Magne Ingebrigtsen's message of "Sun, 21 Nov 2010 05:40:46 +0100")

On Sun, Nov 21 2010, Lars Magne Ingebrigtsen wrote:

> It sounds good; when it's published I'll try reinstating the colour
> stuff in shr and give it a whirl.

I've published things here:
http://git.naquadah.org/?p=~jd/color-el.git;a=summary

Here's a snippet you can use to test it after loading color.el

--8<---------------cut here---------------start------------->8---
(with-current-buffer (switch-to-buffer-other-window (get-buffer-create "*color test*"))
  (erase-buffer)
  (dotimes (i 100)
    (let* ((entry (cons
                   (nth (random (length (x-defined-colors))) (x-defined-colors))
                   (nth (random (length (x-defined-colors))) (x-defined-colors))))
           (color1 (apply 'rgb->lab (mapcar (lambda (x) (/ x 65535.0)) (x-color-values (car entry)))))
           (color2 (apply 'rgb->lab (mapcar (lambda (x) (/ x 65535.0)) (x-color-values (cdr entry)))))
           (luminance-ratio (/ (abs (- (car color1) (car color2))) (+ (car color1) (car color2))))
           (distance (ciede2000 color1 color2)))
      (insert (propertize
               (format
                "%s distance %f luminance-ratio %f: %s and %s\n"
                (if (and (> distance 6)
                         (> luminance-ratio 0.09))
                    "GOOD! :-)"
                  "BAD")
                distance luminance-ratio
                (car entry) (cdr entry))
               'face `(:background ,(car entry) :foreground ,(cdr entry))))))))
--8<---------------cut here---------------end--------------->8---

`ciede2000' returns the distance between 2 colors. I don't know what the
JND[1] threshold value for this algorithm, but 6 does not seems too bad.

For the luminance of a color, the value is stored in the L component of
the Lab format, so it's the car of what 'rgb->lab returned. I compute a
ratio, but feel free to invent something better!

I think both color distance and luminance have to be checked. I tried
several check threshold, with special case if the background is darker
than the text, but did not found anything very effective.

Feel free to try to find something and to ask me question if you need.
:)

[1]  Just Noticeable Difference

-- 
Julien Danjou
// ᐰ <julien@danjou.info>   http://julien.danjou.info



  reply	other threads:[~2010-11-21 13:55 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 ` 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 [this message]
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                               ` 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=87oc9ihjbk.fsf@keller.adm.naquadah.org \
    --to=julien@danjou.info \
    --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).