Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 262 | Details | Compare with Previous | Last modification | View Log | RSS feed

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