[PHP] Creer une image

Statut
N'est pas ouverte pour d'autres réponses.

[Clad]

Manipulateur de bits
Bonjour à tous,

Je fait actuellement un projet en php mêlé de requête en postgress.

J'explique d'abord brièvement le projet:
Je dois créer un site permettant à un utilisateur de choisir un modèle de composant, une simulation associé à ce composant, et enfin les différents signaux qu'il souhaite visualiser.

Une fois ces choix effectué, une image des chronogrammes de la simulation doit automatiquement se générer.

Les données des chronogrammes sont contenues dans une base de données. Donc il faut piocher les infos dans la base et automatiquement dessiner les chronogrammes.




Bon actuellement j'ai déjà fait toute la partie pour choisir le modèle, la simu et les différents signaux visualisable. Maintenant il me reste le plus gros à réaliser: dessiner automatiquement les chronogrammes... je suis complètement perdu ça me parait trop dur (je n'ai jamais fait de php/base de données avant ce projet).

Là j'ai crée une image avec des axes. J'aimerais ajouter le nom du signal sur l'axe des ordonnées.

La partie du code de mon programme principal qui appel l'image:

Code:
print("<img src=\"./killian_testimage.php?$modele\">");

Le code de l'image crée:

Code:
<?php

header ("Content-type: image/png");

$image = ImageCreate (1000, 100); 
$fond=imagecolorallocate($image,255,255,255);
$noir=imagecolorallocate($image,0,0,0);



//$nbchrono=pg_num_rows($signaux);

$blanc = imagecolorallocate($image, 255, 255, 255);
$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);

imagesetthickness ($image,3);

imageline($image,1,1,1,100,$noir);
imageline($image,1,100,1000,100,$noir);

imagestring($image, 3, 5, 5, [COLOR=DarkOrange]$modele[/COLOR], $noir); 
imagestring($image, 3, 990, 85, t, $noir); 

imagepng($image);

?>

Mais voila, rien ne s'affiche lorsque je met $modele pour le premier imagestring. Quelqun peut me dire l'erreur que je commets?

Merci d'avance pour votre aide.
 

Jereck

Α & Ω
Staff
1° $modele = $_GET['modele'];

2° Dans le code de ta balise <img>, tu ne passe rien à l'argument modele

3° il est conseillé de détruire les ressources utilisées (imagedelete je crois) à la fin du script ;)
 
1er
OP
[Clad]

[Clad]

Manipulateur de bits
Merci pour ton aide.

Cependant je ne comprend pas trop (je suis un gros débutant en php).

Alors jai enlevé les données que je passais dans la balise <img>

print("<img src=\"./killian_testimage.php\">");

Et j'ai procédé de cette manière dans la code de l'image:


Code:
<?php

header ("Content-type: image/png");

$image = ImageCreate (1000, 100); 
$fond=imagecolorallocate($image,255,255,255);
$noir=imagecolorallocate($image,0,0,0);
$modele = $_GET['modele'];


$blanc = imagecolorallocate($image, 255, 255, 255);
$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);

imagesetthickness ($image,3);

imageline($image,1,1,1,100,$noir);
imageline($image,1,100,1000,100,$noir);

imagestring($image, 3, 5, 5, $modele, $noir); 
imagestring($image, 3, 990, 85, t, $noir); 

imagepng($image);

?>
J'ai casé le $modele = $_GET['modele']; ici, je ne sais pas si c'est le bonne endroit mais ça ne fonctionne pas. Je n'ai pas trop bien saisi comment il fallait se servir de cette instruction.


Je vais aller chercher sur le net le imagedelete, je l'avais déjà vu je vais le rajouter.

Merci pour votre aide.
 

Jereck

Α & Ω
Staff
[Clad] a dit:
Merci pour ton aide.

Cependant je ne comprend pas trop (je suis un gros débutant en php).

Alors jai enlevé les données que je passais dans la balise <img>

print("<img src=\"./killian_testimage.php\">");


J'ai casé le $modele = $_GET['modele']; ici, je ne sais pas si c'est le bonne endroit mais ça ne fonctionne pas. Je n'ai pas trop bien saisi comment il fallait se servir de cette instruction.
$_GET, c'est le tableau des arguments passés dans l'URL.

print("<img src=\"./killian_testimage.php?modele=truc\">");
:arrow: lorsque le script "killian_testimage.php" va être appelé, il aura comme "arguments" (contenus dans $_GET) un argument "modele" avec comme valeur "truc"

$modele = $_GET['modele'];
:arrow: assigne à la variable local $modele le contenu de la case 'modele' du tableau des arguments (dans notre cas "truc").
 
1er
OP
[Clad]

[Clad]

Manipulateur de bits
Ok c'est vraiment cool ça a fonctionné !
Code du programme principal:
print("<img src=\"./killian_testimage.php?modele=$modele\">");

Et dans l'image j'ai laissé comme avant et ça fonctionne :cool:

Maintenant je v essayer de passer pleins de données comme ça car j'ai besoin de pleins d'informations pour tracer les chronogrammes.

Si j'ai un autre souci je posterai ici =]

Merci beaucoup.
 

SkYlEsS

Elite
Juste un truc : j'peux voir ce que ça donne un chronogramme d'après ton code ... ? :]
 

eGm_

Gibon Blasé
<img src="killian_testimage.php?modele=<?php echo $modele; ?> "\>

et dans ton fichier qui créer l'image : $modele = $_GET["modele"];

voila
 
1er
OP
[Clad]

[Clad]

Manipulateur de bits
Voila pour l'instant le chronogramme.

Bon c'est très loin d'être finit, mais je ne sais pas comment faire pour le reste.

Comment tracer les segments de droites en fonction des résultats sql, comment adapter l'échelle des abccisses etc...
 

eGm_

Gibon Blasé
Il y a plein de fonction en php pour tracer des courbes etc...

Cela fonctionne avec ce que je t'ai dis ?
 

SkYlEsS

Elite
eGm_ a dit:
Il y a plein de fonction en php pour tracer des courbes etc...

Cela fonctionne avec ce que je t'ai dis ?
C'était déjà résolu ;)
 
1er
OP
[Clad]

[Clad]

Manipulateur de bits
Bonjour tout le monde, et bonne année.

Moi je suis encore en galère avec mon projet :-(

Voici l'état d'avancement:

- La page avec le choix des fils et des bus a visualiser

- La page avec les chronogrammes

Ca a un peu avancé.


J'ai notamment effectué une échelle des abcisses qui se règle automatiquement en fonction de la valeur de début et de fin choisi par l'utilisateur, ajout des différentes informations comme le nom, l'échelle, la valeur du début et de fin sur le chronogramme.

J'ai également tracé un trai vertical pour chaque changement de valeur d'un des fils.

Par contre maintenant je dois tracer ou un trait horizontale au niveau logique "1" (donc il sera au milieu du chronogramme), ou bien un trait horizontale representant le niveau logique "0") (il sera a peu près sur l'axe des abcisses).

Je ne sais pas du tout comment faire cela en fonction de la base de donnée. Je suis perdu je n'ai aucune idée...

Voici une image de la base de donnée pour un fil.
Il se peut qu'il y ai deux zéro consécutif.

Le moment représente le moment ou la valeur du bit change.

L'idbit c'est l'id du fil.

Le fil peut prendre comme valeur 0, 1 ou X.

Pour X je pense que je vais hachuré une partie sur le chronogramme.

Est ce qu quelqu'un aurai une petite idée de comment procéder?

Merci d'avance je suis totalement bloqué :colere:
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut