Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | daniel-mar | 1 | <?php |
2 | |||
3 | // http://www.actionscript.org/forums/archive/index.php3/t-50746.html |
||
4 | function HSV_TO_RGB ($H, $S, $V) // HSV Values:Number 0-1 |
||
5 | { // RGB Results:Number 0-255 |
||
6 | $RGB = array(); |
||
7 | |||
8 | if($S == 0) |
||
9 | { |
||
10 | $R = $G = $B = $V * 255; |
||
11 | } |
||
12 | else |
||
13 | { |
||
14 | $var_H = $H * 6; |
||
15 | $var_i = floor( $var_H ); |
||
16 | $var_1 = $V * ( 1 - $S ); |
||
17 | $var_2 = $V * ( 1 - $S * ( $var_H - $var_i ) ); |
||
18 | $var_3 = $V * ( 1 - $S * (1 - ( $var_H - $var_i ) ) ); |
||
19 | |||
20 | if ($var_i == 0) { $var_R = $V ; $var_G = $var_3 ; $var_B = $var_1 ; } |
||
21 | else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $V ; $var_B = $var_1 ; } |
||
22 | else if ($var_i == 2) { $var_R = $var_1 ; $var_G = $V ; $var_B = $var_3 ; } |
||
23 | else if ($var_i == 3) { $var_R = $var_1 ; $var_G = $var_2 ; $var_B = $V ; } |
||
24 | else if ($var_i == 4) { $var_R = $var_3 ; $var_G = $var_1 ; $var_B = $V ; } |
||
25 | else { $var_R = $V ; $var_G = $var_1 ; $var_B = $var_2 ; } |
||
26 | |||
27 | $R = $var_R * 255; |
||
28 | $G = $var_G * 255; |
||
29 | $B = $var_B * 255; |
||
30 | } |
||
31 | |||
32 | $RGB['R'] = $R; |
||
33 | $RGB['G'] = $G; |
||
34 | $RGB['B'] = $B; |
||
35 | |||
36 | return $RGB; |
||
37 | } |
||
38 | |||
39 | function str_to_color($str) { |
||
40 | $str = md5(strtolower($str)); |
||
41 | |||
42 | $sum = 0; |
||
43 | for ($i=0; $i<strlen($str); $i++) { |
||
44 | $c = substr($str,$i,1); |
||
45 | $sum += ord($c); |
||
46 | } |
||
47 | $a = $sum % 255; |
||
48 | |||
49 | |||
50 | $r = HSV_TO_RGB($a/255, 1, 0.75); |
||
51 | |||
52 | return '#'.str_pad(dechex($r['R']), 2, '0', STR_PAD_LEFT). |
||
53 | str_pad(dechex($r['G']), 2, '0', STR_PAD_LEFT). |
||
54 | str_pad(dechex($r['B']), 2, '0', STR_PAD_LEFT); |
||
55 | } |
||
56 | |||
57 | ?> |