2 # Module color - do color conversions
10 y
= 0.3*r
+ 0.59*g
+ 0.11*b
11 i
= 0.6*r
- 0.28*g
- 0.32*b
12 q
= 0.21*r
- 0.52*g
+ 0.31*b
14 def yiq_to_rgb(y
,i
,q
):
15 r
= y
+ 0.948262*i
+ 0.624013*q
16 g
= y
- 0.276066*i
- 0.639810*q
17 b
= y
- 1.105450*i
+ 1.729860*q
27 if hue
>= 1.0: hue
= hue
- 1.0
28 if hue
< 0.0: hue
= hue
+ 1.0
30 return m1
+ (m2
-m1
)*hue
*6.0
34 return m1
+ (m2
-m1
)*(TWO_THIRD
-hue
)*6.0
37 def rgb_to_hls(r
,g
,b
):
44 s
= (maxc
-minc
)/(maxc
+minc
)
46 s
= (maxc
-minc
)/(2-maxc
-minc
)
47 rc
= (maxc
-r
)/(maxc
-minc
)
48 gc
= (maxc
-g
)/(maxc
-minc
)
49 bc
= (maxc
-b
)/(maxc
-minc
)
60 def hls_to_rgb(h
,l
,s
):
68 return (_v(m1
,m2
,h
+ONE_THIRD
), _v(m1
,m2
,h
), _v(m1
,m2
,h
-ONE_THIRD
))
70 def rgb_to_hsv(r
,g
,b
):
77 rc
= (maxc
-r
)/(maxc
-minc
)
78 gc
= (maxc
-g
)/(maxc
-minc
)
79 bc
= (maxc
-b
)/(maxc
-minc
)
90 def hsv_to_rgb(h
,s
,v
):
98 if i
in (0,6): return v
,t
,p
99 if i
== 1: return q
,v
,p
100 if i
== 2: return p
,v
,t
101 if i
== 3: return p
,q
,v
102 if i
== 4: return t
,p
,v
103 if i
== 5: return v
,p
,q