Vous avez peut être déjà voulu faire des images qui changeraient en fonction d’un paramètre? Par exemple des images pour proposer des statistiques : vous passeriez le pourcentage et le script vous renverrais une image représentant vos données : pour 75%. Eh bien vous pourrez bientôt le faire! Bien sûr ce tutoriel sera juste une base, à vous de réutiliser ce que vous aurez appris pour l’adapter à vos besoin.
- Configurer php : la librairie gd2
Ouvrez votre fichier php.ini et décommentez (enlevez le « ; » en début de ligne) la ligne : extension=php_gd2.dll.
- le code!
Tout d’abord il faut indiquer au navigateur le type MIME de ce que va retourner le serveur grâce aux « header » ou « en-tête » HTTP. Ici c’est une image png. Nous allons donc envoyer un header contenant le type et le sous-type : image/png avec php.
<?php
header ( »Content-type: image/png »);
Ensuite nous créons l’image avec la fonction imagecreate. Le premier argument est la largeur de l’image, le second est la hauteur.
$image = imagecreate(102,10);
On définit maintenant les différentes couleurs qui seront utilisées par l’image (premier argument) en utilisant imagecolorallocate. La première allocation d’image définit la couleur de fond de l’image.
$gris = imagecolorallocate($image, 199, 200, 199);
$rouge = imagecolorallocate($image, 153,0, 0);
$noir = imagecolorallocate($image, 0, 0, 0);
On va maintenant tracer le cadre noir autour de notre image avec la fonction ImageRectange. Le premier argument est l’image sur laquelle le rectangle va être tracer. Les deux suivant sont les coordonnées de l’angle supérieur gauche (0,0). Les deux suivant, ceux de l’angle inférieur droit (101,9).Nous avons bien une largeur de 102 et une hauteur de 10 : attention à l’origine des repères qui est bien (0,0). Le dernier argument est la couleur. On utilise les variables variables : $couleur vaut « noir » donc ${$couleur} vaudra « $noir » qui est bien la couleur allouée précédemment.
$couleur= »noir »;
ImageRectangle ($image, 0, 0, 101, 9, ${$couleur});
On répéte l’opération à quelques différences près : la fonction utilisée est ImageFilledRectangle qui construit un rectangle plein et non juste les contours. De plus la largeur du rectangle (donc l’abscisse de l’angle inférieur droit) est envoyé en paramètre au script. Donc nous le récupérons avec la variable serveur $_GET['nom_de_largument'].
$couleur= »rouge »;
ImageFilledRectangle ($image, 1, 1, $_GET['len'], 8, ${$couleur});
Il ne reste plus qu’à renvoyer l’image au navigateur (c’est à dire la sortie standard dans notre cas) grâce à imagepng. Puis à libérer les ressources avec imagedestroy.
imagepng($image);
imagedestroy( $img );
?>
Ca y est! Vous pouvez utiliser votre image en indiquant, dans l’attribut src de la balise html, l’url de votre fichier avec en argument votre pourcentage. Par exemple : <img src= »http://www.e-caveavin.com/cv/tuto/img_stat.php?len=75″ />.
Il existe énormement de fonction pour créer des formes ou du texte avec la librairie gd de php.
N’oubliez pas de poster vos créations!! Et si vous avez des questions comme d’hab’, un ptit commentaire :-p
User Responses
No Responses and Counting...
Leave a Reply
[tuto jquery] drag ‘n drop avec sauvegarde automatique en base de données (2/2)
[tuto jquery] drag ‘n drop avec sauvegarde automatique en base de données (1/2)
[2 birthday] 2 ans aujourd'hui = 2 smashing book à gagner
[tuto web] cadre avec bordures extensibles valide xhtml/css
[tuto mashup] Google maps sur votre site : c'est possible! (version statique)
- Plastic Wrap Door Trick 10 mars 2010 nimaco05
- Dog Stache 9 mars 2010 Anand Gahlot
- Tree Railing 8 mars 2010 Yasmine Zalek
- Les clients français et le syndrome du verre à moitié vide 8 mars 2010 Julien
- Lever des fonds 5 mars 2010 Olivier Marone




![[3615 mylife] Limoges, c’est fini. La suite?](http://antoine.guiral.info/wp-content/uploads/2010/02/stvincent.jpg)
![[facebook] Du nouveau sur la roadmap](http://antoine.guiral.info/wp-content/uploads/2010/02/facebook_logo.png)
![[facebook php] hiphop for php : une petite révolution dans le monde du développement web et de php](http://antoine.guiral.info/wp-content/uploads/2010/02/hiphop.jpg)
![[apple iPad] énorme succés de l’iPad à la dernière keynote d’apple](http://antoine.guiral.info/wp-content/uploads/2010/01/ipad.jpg)
![[google] google, le 51ème état?](http://antoine.guiral.info/wp-content/uploads/2010/01/51emeetat.jpg)
janvier 20, 2008
Merci pour tous les tutos y sont super intéressant !
janvier 20, 2008
Merci beaucoup micka ca m’encourage à continuer! Et n’hesite pas à mettre les url’s de tes réalisations en commentaire! Bon courage!