OVH Cloud OVH Cloud

image php

3 réponses
Avatar
Jack
Bonjour

Voilà sur le site php débutant il y a un tuto pour faire des images
dynamiques avec php
Je mets donc en place des "barettes" suivant mes requettes et en fonction
des résultats j'ai des barettes de couleur différente. Pour ce ci j'utilse
dans ma boucle un switch
Ce que je voudrais faire c'est créer une fonction ( pour 20 couleurs ) qui
remplacerait toute la partie du switch
Si quelqu'un a une piste ou unsite qui parle des images crées par php je
suis preneur

Merci

3 réponses

Avatar
BaBS
Bonjour,
serai t il possible d'avoir un peu plus d'info
(cela ma parrait bien vague), ex de codes ou autre :)

++
Damien

Le Fri, 03 Sep 2004 21:42:37 +0000, Jack a écrit :

Bonjour

Voilà sur le site php débutant il y a un tuto pour faire des images
dynamiques avec php
Je mets donc en place des "barettes" suivant mes requettes et en fonction
des résultats j'ai des barettes de couleur différente. Pour ce ci j'utilse
dans ma boucle un switch
Ce que je voudrais faire c'est créer une fonction ( pour 20 couleurs ) qui
remplacerait toute la partie du switch
Si quelqu'un a une piste ou unsite qui parle des images crées par php je
suis preneur

Merci


Avatar
Jack
Bonjour

Voici le code qui donc m'affiche des "buchettes"
La fonction que j'essaie de faire c'est pour remplacer les valeurs dans le
switch ( j'ai 63 couleurs à gerer)

$longueur_imageP0;
$hauteur_image00;
$image=@ImageCreate($longueur_image,$hauteur_image+35);
$blanc=ImageColorAllocate($image,255,255,255);
$noir=ImageColorAllocate($image,0,0,0);
$jaune=ImageColorAllocate($image,255,255,0);

ImageLine($image,10,$hauteur_image+20,$longueur_image-10,$hauteur_image+20,$
noir);
$sql="select " .$valeur. ",sum(QUANTITE) AS RESULTAT,PRODUIT,couleur from
moteur GROUP BY PRODUIT, " .$valeur. " order by " .$valeur .",PRODUIT";
$req=mysql_query($sql);
// $res=mysql_numrows($req);

while( $resu=mysql_fetch_array($req))
{
switch ($resu['couleur'])
{
case 1:
$couleur=ImageColorAllocate($image,0,37,119); // bleu
break;
case 2:
$couleur=ImageColorAllocate($image,51,102,51); // vert
break;
case 3:
$couleur=ImageColorAllocate($image,255,0,255); // mauve
break;
case 4:
$couleur=ImageColorAllocate($image,51,51,51); // marron
break;
case 5:
$couleur=ImageColorAllocate($image,255,114,0); // orange
break;
case 6:
$couleur=ImageColorAllocate($image,255,0,51); // rouge
break;
}

$point_fin=round(($resu['RESULTAT']* ($hauteur_image))/$valmax-10);
if ($newval!=$resu[$valeur])
{
$nouvelle_buchette=$nouvelle_buchette+25;

ImageFilledRectangle($image,$nouvelle_buchette,$hauteur_image+20-$point_fin-
10,$nouvelle_buchette+20,$hauteur_image+20,$couleur);

ImageString($image,2,$nouvelle_buchette,$hauteur_image+10-$point_fin,$resu['
RESULTAT'],$blanc);
$newval=$resu[$valeur];
$pointdepart=$hauteur_image-$point_fin-10;
$num_color=0;
}
else
{
$num_color=0;

ImageFilledRectangle($image,$nouvelle_buchette,$pointdepart+20-$point_fin-10
,$nouvelle_buchette+20,$pointdepart+20,$couleur);

ImageString($image,2,$nouvelle_buchette,$pointdepart+10-$point_fin,$resu['RE
SULTAT'],$blanc);
$pointdepart=($pointdepart)-$point_fin-10;
}
}

mysql_close();

J'espère que celà est clair

Merci

"BaBS" a écrit dans le message de news:

Bonjour,
serai t il possible d'avoir un peu plus d'info
(cela ma parrait bien vague), ex de codes ou autre :)

++
Damien


Bonjour

Voilà sur le site php débutant il y a un tuto pour faire des images
dynamiques avec php
Je mets donc en place des "barettes" suivant mes requettes et en
fonction


des résultats j'ai des barettes de couleur différente. Pour ce ci
j'utilse


dans ma boucle un switch
Ce que je voudrais faire c'est créer une fonction ( pour 20 couleurs )
qui


remplacerait toute la partie du switch
Si quelqu'un a une piste ou unsite qui parle des images crées par php je
suis preneur

Merci




Avatar
Olivier Miakinen
Bonjour

Voici le code qui donc m'affiche des "buchettes"
La fonction que j'essaie de faire c'est pour remplacer les valeurs dans le
switch ( j'ai 63 couleurs à gerer)

[...]

switch ($resu['couleur']) {
case 1:
$couleur=ImageColorAllocate($image,0,37,119); // bleu
break;
case 2:
$couleur=ImageColorAllocate($image,51,102,51); // vert
break;
case 3:
$couleur=ImageColorAllocate($image,255,0,255); // mauve
break;
case 4:
$couleur=ImageColorAllocate($image,51,51,51); // marron
break;
case 5:
$couleur=ImageColorAllocate($image,255,114,0); // orange
break;
case 6:
$couleur=ImageColorAllocate($image,255,0,51); // rouge
break;
}


Une possibilité est la suivante.

-------------------------------------------------------------------

À faire une fois pour toute, au début du script :

$liste_couleurs = array(
1 => array(0, 37, 119),
array(51, 102, 51),
array(255, 0, 255),
array(51, 51, 51),
array(255, 114, 0),
array(255, 0, 51)
);

À faire à la place du switch :

$rgb = $liste_couleurs[$resu['couleur']];
$couleur = mageColorAllocate($image, $rgb[0], $rgb[1], $rgb[2]);

-------------------------------------------------------------------