Cjulie
-------------------------------
Réponse au message :
-------------------------------
>
Cjulie
> Hello,
> J'ai un p'tit souci et je suis à la recherche d'un bon samaritain !
>
> Voila, je suis en train de refaire un site et je dois inclure des graphiques que je crée de façon dynamique ds mes pages WEB.
> Comment fait-on ?
> J'ai essayé en utilisant l'URL du fichier qui crée le graphique et un cadre apparaît à la bonne taille ms il est vide sf avec la croix rouge qui indique que l'image ne peut être affichée !
>
> A l'aide , SVP.
>
> Julie.
Voici un exemple de code pr un graphique
<?
// on spécifie le type d'image que l'on va créer, ici ce sera une image au format PNG
header ("Content-type: image/png");
//données pr graph
$mois[1]=105;
$mois[2]=110;
$mois[3]=120;
$mois[4]=200;
$mois[5]=250;
$mois[6]=300;
$mois[7]=350;
$mois[8]=400;
$mois[9]=450;
$mois[10]=500;
$mois[11]=550;
$mois[12]=600;
$max = max($mois);
$largeur = 1000;
$hauteur = 650;
$img = ImageCreate ($largeur, $hauteur) or die ("Erreur lors de la création de l'image");
// on place tout d'abord la couleur blanche dans notre table des couleurs (je vous rappelle donc que le blanc sera notre couleur de fond pour cette image).
$blanc = ImageColorAllocate ($img, 255, 255, 255);
// on place noir dans notre palette, ainsi qu'un bleu foncé et un bleu clair
$noir = ImageColorAllocate ($img, 0, 0, 0);
$bleu_fonce = ImageColorAllocate ($img, 75, 130, 195);
$bleu_clair = ImageColorAllocate ($img, 95, 160, 240);
// axe des mois
ImageLine ($img, 20, $hauteur-40, $largeur-15, $hauteur-40, $noir);
// affichage du numéro des 12 mois
for ($i=1; $i<=12; $i++) {
if ($i==1) {
ImageString ($img, 2, 60, $hauteur-35, $i, $noir);
}
else {
ImageString ($img, 2, ($i)*70+15, $hauteur-35, $i, $noir);
}
}
// axe des ordonnées
ImageLine ($img, 20, 30, 20, $hauteur-40, $noir);
// on parcourt le tableau mois
for ($i=1; $i <= 12; $i++) {
$tps=$mois[$i];
if ($tps!=0) {
// on calcule la hauteur
if ($i=="1") {
// si le mois est janvier, on affiche notre premier baton
//ImageLine ($img, 20, 30, 20, $hauteur-40, $noir);
ImageFilledRectangle ($img, 45,$hauteur- $tps, 45+40, $hauteur-41, $noir);
// affichage le second baton, bleu foncé, qui sera un peu plus petit que le noir afin de recouvrir une partie du noir
ImageFilledRectangle ($img, 46,$hauteur- $tps+2, 46+38, $hauteur-41-1, $bleu_fonce);
// affichage le dernier baton, bleu clair, qui sera un peu plus petit que le bleu foncé afin de recouvrir une partie du bleu foncé (on obtiendra ainsi un effet de dégradé)
ImageFilledRectangle ($img, 55,$hauteur- $tps+2, 45+30, $hauteur-41-1, $bleu_clair);
$polygone = array (46,$hauteur-$tps,66,$hauteur-$tps-8,105,$hauteur-$tps-8,85,$hauteur-$tps); // nombre de positions pour les points
$nb_sommets = count ($polygone)/2;
imagefilledpolygon($img, $polygone, $nb_sommets, $bleu_fonce); // affiche un polygone en losange
imagepolygon($img, $polygone, $nb_sommets, $noir);
$polygone = array (85,$hauteur-40,105,$hauteur-40-8,105,$hauteur-$tps-8,85,$hauteur-$tps); // nombre de positions pour les points
imagefilledpolygon($img, $polygone, $nb_sommets, $bleu_fonce); // affiche un polygone en losange
imagepolygon($img, $polygone, $nb_sommets, $noir);
}
else {
// si le mois est different de janvier, on affiche les autres batons
ImageFilledRectangle ($img, ($i)*70, ($hauteur-$tps), ($i)*70+40, $hauteur-41, $noir);
ImageFilledRectangle ($img, ($i)*70+1, $hauteur-$tps+2, ($i)*70+39, $hauteur-41-1, $bleu_fonce);
ImageFilledRectangle ($img, ($i)*70+10, $hauteur-$tps+2, ($i)*70+30, $hauteur-41-1, $bleu_clair);
$polygone = array (($i)*70+1,$hauteur-$tps,($i)*70+20,$hauteur-$tps-8,($i)*70+50,$hauteur-$tps-8,($i)*70+40,$hauteur-$tps); // nombre de positions pour les points
$nb_sommets = count ($polygone)/2;
imagefilledpolygon($img, $polygone, $nb_sommets, $bleu_fonce); // affiche un polygone en losange
imagepolygon($img, $polygone, $nb_sommets, $noir);
$polygone = array (($i)*70+40,$hauteur-40,($i)*70+50,$hauteur-40-8,($i)*70+50,$hauteur-$tps-8,($i)*70+40,$hauteur-$tps); // nombre de positions pour les points
imagefilledpolygon($img, $polygone, $nb_sommets, $bleu_fonce); // affiche un polygone en losange
imagepolygon($img, $polygone, $nb_sommets, $noir);
}
}
}
// on dessine le tout
Imagepng ($img);
imageDestroy($img);
?>
Merci d'avance !
Julie