Commit f5462bae authored by Julien Danjou's avatar Julien Danjou Committed by Katsumi Yamaoka
Browse files

color.el: Rename various rgb functions to srgb.

parent 36af6c65
2010-11-26 Julien Danjou <julien@danjou.info>
* color.el: Rename various rgb functions to srgb.
2010-11-26 Lars Magne Ingebrigtsen <larsi@gnus.org> 2010-11-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
   
* nnimap.el (nnimap-get-groups): Allow non-quoted strings as mailbox * nnimap.el (nnimap-get-groups): Allow non-quoted strings as mailbox
......
...@@ -53,7 +53,7 @@ RED GREEN BLUE must be values between [0,1]." ...@@ -53,7 +53,7 @@ RED GREEN BLUE must be values between [0,1]."
(defun color-rgb->hsv (red green blue) (defun color-rgb->hsv (red green blue)
"Convert RED GREEN BLUE values to HSV representation. "Convert RED GREEN BLUE values to HSV representation.
Hue is in radian. Saturation and values are between 0 and 1." Hue is in radian. Saturation and values are between [0,1]."
(let* ((r (float red)) (let* ((r (float red))
(g (float green)) (g (float green))
(b (float blue)) (b (float blue))
...@@ -106,8 +106,8 @@ RED, GREEN and BLUE must be between [0,1]." ...@@ -106,8 +106,8 @@ RED, GREEN and BLUE must be between [0,1]."
(/ delta (+ max min)))) (/ delta (+ max min))))
l))) l)))
(defun color-rgb->xyz (red green blue) (defun color-srgb->xyz (red green blue)
"Converts RED GREEN BLUE colors to CIE XYZ representation. "Converts RED GREEN BLUE colors from the sRGB color space to CIE XYZ.
RED, BLUE and GREEN must be between [0,1]." RED, BLUE and GREEN must be between [0,1]."
(let ((r (if (<= red 0.04045) (let ((r (if (<= red 0.04045)
(/ red 12.95) (/ red 12.95)
...@@ -122,8 +122,8 @@ RED, BLUE and GREEN must be between [0,1]." ...@@ -122,8 +122,8 @@ RED, BLUE and GREEN must be between [0,1]."
(+ (* 0.21266729 r) (* 0.7151522 g) (* 0.0721750 b)) (+ (* 0.21266729 r) (* 0.7151522 g) (* 0.0721750 b))
(+ (* 0.0193339 r) (* 0.1191920 g) (* 0.9503041 b))))) (+ (* 0.0193339 r) (* 0.1191920 g) (* 0.9503041 b)))))
(defun color-xyz->rgb (X Y Z) (defun color-xyz->srgb (X Y Z)
"Converts CIE X Y Z colors to RGB." "Converts CIE X Y Z colors to sRGB color space."
(let ((r (+ (* 3.2404542 X) (* -1.5371385 Y) (* -0.4985314 Z))) (let ((r (+ (* 3.2404542 X) (* -1.5371385 Y) (* -0.4985314 Z)))
(g (+ (* -0.9692660 X) (* 1.8760108 Y) (* 0.0415560 Z))) (g (+ (* -0.9692660 X) (* 1.8760108 Y) (* 0.0415560 Z)))
(b (+ (* 0.0556434 X) (* -0.2040259 Y) (* 1.0572252 Z)))) (b (+ (* 0.0556434 X) (* -0.2040259 Y) (* 1.0572252 Z))))
...@@ -186,15 +186,15 @@ none is set, `color-d65-xyz' is used." ...@@ -186,15 +186,15 @@ none is set, `color-d65-xyz' is used."
(* yr Yr) ; Y (* yr Yr) ; Y
(* zr Zr))))) ; Z (* zr Zr))))) ; Z
(defun color-rgb->lab (red green blue) (defun color-srgb->lab (red green blue)
"Converts RGB to CIE L*a*b*." "Converts RGB to CIE L*a*b*."
(apply 'color-xyz->lab (color-rgb->xyz red green blue))) (apply 'color-xyz->lab (color-srgb->xyz red green blue)))
(defun color-rgb->normalize (color) (defun color-rgb->normalize (color)
"Normalize a RGB color to values between [0,1]." "Normalize a RGB color to values between [0,1]."
(mapcar (lambda (x) (/ x 65535.0)) (x-color-values color))) (mapcar (lambda (x) (/ x 65535.0)) (x-color-values color)))
(defun color-lab->rgb (L a b) (defun color-lab->srgb (L a b)
"Converts CIE L*a*b* to RGB." "Converts CIE L*a*b* to RGB."
(apply 'color-xyz->rgb (color-lab->xyz L a b))) (apply 'color-xyz->rgb (color-lab->xyz L a b)))
......
...@@ -330,8 +330,8 @@ color will be adapted to be visible on BG." ...@@ -330,8 +330,8 @@ color will be adapted to be visible on BG."
(if (or (null fg-norm) (if (or (null fg-norm)
(null bg-norm)) (null bg-norm))
(list bg fg) (list bg fg)
(let* ((fg-lab (apply 'color-rgb->lab fg-norm)) (let* ((fg-lab (apply 'color-srgb->lab fg-norm))
(bg-lab (apply 'color-rgb->lab bg-norm)) (bg-lab (apply 'color-srgb->lab bg-norm))
;; Compute color distance using CIE DE 2000 ;; Compute color distance using CIE DE 2000
(fg-bg-distance (color-cie-de2000 fg-lab bg-lab)) (fg-bg-distance (color-cie-de2000 fg-lab bg-lab))
;; Compute luminance distance (substract L component) ;; Compute luminance distance (substract L component)
...@@ -351,10 +351,10 @@ color will be adapted to be visible on BG." ...@@ -351,10 +351,10 @@ color will be adapted to be visible on BG."
bg bg
(apply 'format "#%02x%02x%02x" (apply 'format "#%02x%02x%02x"
(mapcar (lambda (x) (* (max (min 1 x) 0) 255)) (mapcar (lambda (x) (* (max (min 1 x) 0) 255))
(apply 'color-lab->rgb bg-lab)))) (apply 'color-lab->srgb bg-lab))))
(apply 'format "#%02x%02x%02x" (apply 'format "#%02x%02x%02x"
(mapcar (lambda (x) (* (max (min 1 x) 0) 255)) (mapcar (lambda (x) (* (max (min 1 x) 0) 255))
(apply 'color-lab->rgb fg-lab)))))))))) (apply 'color-lab->srgb fg-lab))))))))))
(provide 'shr-color) (provide 'shr-color)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment