Il n'y a pas si longtemps, je répondais sur un autre forum que le mien :o( à la question : "comment créer des images avec PHP ?"...
Utiliser PHP pour dessiner des graphiques ne relève pas de l'impossible :o) et rend bien des services pour illustrer dynamiquement sondage et courbes graphiques...
Ainsi le script "dessin1.php" qui suit
<?
$image=imagecreate(150,150);
imageColorAllocate($image,0,0,0);
imageJpeg($image);
imageDestroy($image);
?>
va afficher ceci :
à la condition expresse d'y faire appel de la manière suivante :
<img src="dessin1.php">
Analyse rapide du script :
$image=imagecreate(150,150); initialisation de $image avec les dim. largeur/hauteur
imageColorAllocate($image,0,0,0); allocation d'une couleur RGB, ici noir
imageJpeg($image); production de l'image en jpg
imageDestroy($image); une fois l'image créée, on la détruit en mémoire...
A noter que selon la librairie GD (surtout si inférieure à la version 1.8), vous pouvez aussi bien créer des gifs avec imageGif($image);
Pour dessiner un rectangle, vous utiliserez
imageFilledRectangle($image,x,x',y,y',$couleur);
où $image est l'image initialisée, x et x' représentent le coin supérieur gauche, y et y' représentent le coin inférieur droit du rectangle. $couleur étant la couleur allouée au rectangle. Exemple :
Code de dessin2.php :
<?
$image=imagecreate(150,150);
$blanc=imageColorAllocate($image,255,255,255);
$bleu=imageColorAllocate($image,0,0,255);
$noir=imageColorAllocate($image,0,0,0);
$vert=imageColorAllocate($image,0,157,160);
$jaune=imageColorAllocate($image,220,232,29);
imageFilledRectangle($image,60,0,150,30,$jaune);
imageFilledRectangle($image,0,30,60,150,$vert);
imageFilledRectangle($image,60,60,150,100,$bleu);
imageFilledRectangle($image,60,100,90,150,$noir);
imageJpeg($image);
imageDestroy($image);
?>
Note : si plusieurs couleurs sont allouées dans le script, c'est la première couleur allouée qui sera retenue par PHP comme couleur de fond de $image par défaut...
PHP vous permet aussi de "dessiner" des lettres...
horizontalement avec imageString($image,X,x,y,$texte,$couleur);
et
verticalement avec imagestringUp($image,X,x,y,$texte,$couleur);
où X représente la taille des caractères, x et y les coordonnées du début de la chaîne de caractères...
Exemple :
Et si votre hébergeur vous permet d'utiliser toutes les fonctionnalités de la librairie GD version 2.0 minimum, vous pourrez même vous autoriser quelques bonus, comme les camemberts, par exemple :o))
La fonction principale dans la réalisation de camembert est
imagefilledarc($image,a,b,c,d,e,$texte,$couleur);
(pour plus d'info, consultez directement le manuel de référence (en français) sur le site de php.net...