Subversion Repositories cryptochat

Rev

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
?>