[PHP] Creer une image

Discussion dans 'Web, design' créé par [Clad], 9 Décembre 2007.

Statut de la discussion:
Fermée.
  1. Offline
    [Clad] Elite
    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.
    [Clad], 9 Décembre 2007
    #1
  2. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    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 ;)
    Jereck, 9 Décembre 2007
    #2
  3. Offline
    [Clad] Elite
    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.
    [Clad], 9 Décembre 2007
    #3
  4. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    $_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").
    Jereck, 9 Décembre 2007
    #4
  5. Offline
    [Clad] Elite
    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.
    [Clad], 9 Décembre 2007
    #5
  6. Offline
    SkYlEsS Kawai
    Juste un truc : j'peux voir ce que ça donne un chronogramme d'après ton code ... ? :]
    SkYlEsS, 9 Décembre 2007
    #6
  7. Offline
    eGm_ Guinea Trump
    <img src="killian_testimage.php?modele=<?php echo $modele; ?> "\>

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

    voila
    eGm_, 9 Décembre 2007
    #7
  8. Offline
    [Clad] Elite
    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...
    [Clad], 10 Décembre 2007
    #8
  9. Offline
    eGm_ Guinea Trump
    Il y a plein de fonction en php pour tracer des courbes etc...

    Cela fonctionne avec ce que je t'ai dis ?
    eGm_, 10 Décembre 2007
    #9
  10. Offline
    SkYlEsS Kawai
    C'était déjà résolu ;)
    SkYlEsS, 10 Décembre 2007
    #10
  11. Offline
    [Clad] Elite
    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:
    [Clad], 2 Janvier 2008
    #11
Statut de la discussion:
Fermée.