an rgb color vector
a hsl color vector
| |
|
|
| |
Implementation
01 function rgb_hsl( rgb_ )
02 dim h
03 dim s
04 dim l
05
06 dim r: r = rgb_( COLOR_R ) / NUMBER_MAX_BYTE
07 dim g: g = rgb_( COLOR_G ) / NUMBER_MAX_BYTE
08 dim b: b = rgb_( COLOR_B ) / NUMBER_MAX_BYTE
09
10 dim min: min = number_mini( number_mini( r, g ), b )
11 dim max: max = number_maxi( number_maxi( r, g ), b )
12
13 dim delta: delta = max - min
14 dim sigma: sigma = max + min
15 dim kappa: kappa = sigma / 2.0
16
17 l = sigma / 2.0
18
19 if( delta = 0.0 ) then
20 h = 0.0
21 s = 0.0
22 else
23 if( l < 0.5 ) then
24 s = delta / sigma
25 else
26 s = delta / ( 2.0 - sigma )
27 end if
28
29 if( r = max ) then
30 h = ( g - b ) / delta
31 else
32 if( g = max ) then
33 h = ( b - r ) / delta + 2.0
34 else
35 h = ( r - g ) / delta + 4.0
36 end if
37 end if
38
39 h = h / 6.0
40
41 if( h < 0.0 ) then h = h + 1.0
42 if( h > 1.0 ) then h = h - 1.0
43 end if
44 rgb_hsl = array( h, s, l )
45 end function
|
|
| |
|
|
|