Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 262 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 262 Rev 327
Line 3... Line 3...
3
 * Created on 23 juin 2011
3
 * Created on 23 juin 2011
4
 *
4
 *
5
 * To change the template for this generated file go to
5
 * To change the template for this generated file go to
6
 * Window - Preferences - PHPeclipse - PHP - Code Templates
6
 * Window - Preferences - PHPeclipse - PHP - Code Templates
7
 */
7
 */
8
 
8
 
9
class OdsMarqueur extends JRestService {
9
class OdsMarqueur extends JRestService {
10
 	
10
 
11
 	public function getElement() {
11
 	public function getElement() {
12
 	
12
 
13
 		if(isset($_GET['couleurs'])) {
13
 		if(isset($_GET['couleurs'])) {
-
 
14
      $couleurs = strtoupper(urldecode($_GET['couleurs']));
14
 			$couleurs = explode(',',$_GET['couleurs']);
15
 			$couleurs = explode(',', $couleurs);
15
 		}
16
 		}
16
 		
17
 
17
 		$taille = 15;
18
 		$taille = 15;
18
 		
19
 
19
 		if(isset($_GET['taille'])) {
20
 		if(isset($_GET['taille'])) {
20
 			$taille = $_GET['taille'];
21
 			$taille = $_GET['taille'];
21
 		}
22
 		}
22
 		
23
 
23
 		$image = imagecreatetruecolor($taille,$taille);
24
 		$image = imagecreatetruecolor($taille,$taille);
24
		$faux_noir = imagecolorallocate($image, 64, 64, 64);
25
		$faux_noir = imagecolorallocate($image, 64, 64, 64);
25
		$noir = imagecolorallocate($image, 0, 0, 0);
26
		$noir = imagecolorallocate($image, 0, 0, 0);
26
 		
27
 
27
 		if(count($couleurs) <= 0) {
28
 		if(count($couleurs) <= 0) {
28
 			return;
29
 			return;
29
 		}
30
 		}
30
 		
31
 
31
 		//$couleurs = array_unique($couleurs);
32
 		//$couleurs = array_unique($couleurs);
32
 		sort($couleurs);
33
 		sort($couleurs);
33
 		
34
 
34
 		$pas_angle = 360/count($couleurs);
35
 		$pas_angle = 360/count($couleurs);
35
 		$angle = 0;
36
 		$angle = 0;
36
 		
37
 
37
 		foreach($couleurs as $couleur_html) {
38
 		foreach($couleurs as $couleur_html) {
38
 			
39
 
39
 			$couleur_rgb = $this->html2rgb($couleur_html);
40
 			$couleur_rgb = $this->html2rgb($couleur_html);
40
 			 			
41
 
41
			$couleur_allouee = imagecolorallocate($image, $couleur_rgb[0], $couleur_rgb[1], $couleur_rgb[2]);		
42
			$couleur_allouee = imagecolorallocate($image, $couleur_rgb[0], $couleur_rgb[1], $couleur_rgb[2]);
42
			imagefilledarc($image, $taille/2, $taille/2,
43
			imagefilledarc($image, $taille/2, $taille/2,
43
							$taille, $taille-1, 
44
							$taille, $taille-1,
44
							$angle, $angle+$pas_angle, 
45
							$angle, $angle+$pas_angle,
45
							$couleur_allouee, IMG_ARC_PIE);
46
							$couleur_allouee, IMG_ARC_PIE);
46
			$angle = $angle+$pas_angle;
47
			$angle = $angle+$pas_angle;
47
 		}
48
 		}
48
 		
49
 
49
 		imagefilledarc($image, $taille/2, $taille/2,
50
 		imagefilledarc($image, $taille/2, $taille/2,
50
							$taille, $taille, 
51
							$taille, $taille,
51
							0, 360, 
52
							0, 360,
52
							$faux_noir, IMG_ARC_NOFILL);
53
							$faux_noir, IMG_ARC_NOFILL);
53
 		
54
 
54
 		imagecolortransparent($image, $noir);
55
 		imagecolortransparent($image, $noir);
55
 		
56
 
56
 		header('Content-type: image/png');
57
 		header('Content-type: image/png');
57
		imagepng($image);
58
		imagepng($image);
58
		imagedestroy($image);
59
		imagedestroy($image);
59
 	} 	
60
 	}
60
 	
61
 
61
 	function html2rgb($color)
62
 	function html2rgb($color)
62
	{
63
	{
63
	    if ($color[0] == '#')
64
	    if ($color[0] == '#')
64
	        $color = substr($color, 1);
65
	        $color = substr($color, 1);
65
	
66
 
66
	    if (strlen($color) == 6)
67
	    if (strlen($color) == 6)
67
	        list($r, $g, $b) = array($color[0].$color[1],
68
	        list($r, $g, $b) = array($color[0].$color[1],
68
	                                 $color[2].$color[3],
69
	                                 $color[2].$color[3],
69
	                                 $color[4].$color[5]);
70
	                                 $color[4].$color[5]);
70
	    elseif (strlen($color) == 3)
71
	    elseif (strlen($color) == 3)
71
	        list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
72
	        list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
72
	    else
73
	    else
73
	        return false;
74
	        return false;
74
	
75
 
75
	    $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
76
	    $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
76
	
77
 
77
	    return array($r, $g, $b);
78
	    return array($r, $g, $b);
78
	}
79
	}
79
} 	
80
}
80
?>
81
?>