Création d'image

Résolu
pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -  
pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je travaille sur PHP.
J'aimerais créer une image dynamiquement qui dépendra des données stockées dans ma base de données.
Cette image sera reconstitué à chaque appel ou rafraîchissement de la page HTML.

Pourriez vous me dire comment je dois procéder, existe t-il une librairie me permettant de faire des graphiques, est-ce que cela entraînera une consommation importante de ressources sur mon server (dans ce cas comment y remédier)

Merci d'avance
Configuration: Windows XP
Firefox 2.0.0.17

2 réponses

  1. lenono
     
    Ca consomme un peu de ressources oui ! Mais pas des masses, à voir si tu es hébergé en shared, private ou dédié, et surtout si tu as 5 ou 50000 affichages à l'heure !

    La librairie utilisée est la lib GD.
    exemple : http://free.box.free.fr/info.php3 (au hasard, merci google) et tu cherches dans la page :GD Support
    Là tu auras certainement une version indiquée.
    Après, tu te cherches un ou 2 tuto, voir éventuellement les bouts de code proposés sur php.net.
    Pars de là imagecreatefromjpeg : https://www.php.net/imagecreatefromjpeg
    et le code :

    <?php
    function LoadJpeg($imgname) {
    $im = @imagecreatefromjpeg($imgname); /* Tentative d'ouverture */
    if (!$im) { /* Vérification */
    $im = imagecreatetruecolor(150, 30); /* Création d'une image blanche */
    $bgc = imagecolorallocate($im, 255, 255, 255);
    $tc = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
    /* Affichage d'un message d'erreur */
    imagestring($im, 1, 5, 5, "Erreur de chargement de l'image $imgname", $tc);
    }
    return $im;
    }
    header("Content-Type: image/jpeg");
    $img = LoadJpeg("bogus.image");
    imagejpeg($img);
    ?>

    Voilà, en gros.

    Bon courage,

    Arnaud
    0
    1. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
       
      Bpnjour,

      Merci de cette réponse...
      0
    2. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2
       
      bonjour,

      j'ai installé la librairie GD
      sous linux -> en ajoutant dans le php.ini extension=gd.so
      sous EasyPHP -> en enlevant le ; devant l'instruction extension=php_gd2.dll

      Cependant, j'obtiens le message suivant: Fatal Error Call to undefined function imagecreatetruecolor() in ../../..on line XX
      voici mon script

      $im = imagecreatetruecolor (50, 100) or die ("Impossible de crée un flux d'image GD");
      $text_color = imagecolorallocate ($im, 233, 14, 91);
      imagestring ($im, 1, 5, 5, "Une simple chaîne de texte", $text_color);
      imagepng ($im);

      Si je met @devant imagecreatetruecolor la page reste blanche et je n'ai pas de message d'erreur.

      Je ne comprend pas ce qu'il se passe peut-on m'aider?
      Merci d'avance
      Margot
      0
      1. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2 > pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour,

        je cherche toujpurs une solution à mon problème;
        j'ai bien en tout début de mon code header("Content-type: image/png");

        J'ai tapé sous root apt-get install php_gd(puisphp_gd2) mais j'obtiens le message suivant: impossible de trouver le paquet php_gd

        de plus en tapant php phpinfo.php a aucun moment je ne vois apparaître d'information sur gd.
        0
      2. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2 > pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        J'ai résolu une partie de mon problème; en effet j'ai réussi à installer la librairie gd en fesant
        1.apt-get update(mise à jour) puis
        2.apt-get install php5_gd sous root (je ne mettais pas le 5 de php)
        en fesant php phpinfo.php
        j'obtiens:
        gd

        GD Support => enabled
        GD Version => 2.0 or higher
        FreeType Support => enabled
        FreeType Linkage => with freetype
        FreeType Version => 2.2.1
        T1Lib Support => enabled
        GIF Read Support => enabled
        GIF Create Support => enabled
        JPG Support => enabled
        PNG Support => enabled
        WBMP Support => enabled

        en fesant
        <?php
        //on appelle la session
        session_start();

        //on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
        if(isset($_SESSION['user_login']))
        {
        header("Content-type: image/png");
        $user_login=$_SESSION['user_login'] ;

        print("You are logged as <b>$user_login</b><br><br>");

        }
        else
        {

        header ("Location: form_identification.html");
        }
        ?>

        <?php
        $image = imagecreatetruecolor (50,100) or die ("Impossible de crée un flux d'image GD");
        imagepng ($image);
        ?>
        j'obtiens le message suivant
        L'image"http://..." ne peut être affichée car elle contient des erreurs.
        si j'affiche le code source de la page il apparait
        You are logged as...
        %PNG
        ???
        IHDR???2???d???KSO???&IDAThiA1???A oOm??????????????...




        Néanmoins lorsque je change la position du header (header("Content-type: image/png");), j'obtiens le message ci-dessus:
        �PNG ��� IHDR���2���d���K�����&IDATh���1��� �Om ������������������:��%������IEND�B`


        Voici le script:
        <?php
        //on appelle la session
        session_start();
        //on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
        if(isset($_SESSION['user_login']))
        {
        $user_login=$_SESSION['user_login'] ;

        print("You are logged as <b>$user_login</b><br><br>");

        }
        else
        {
        header("Content-type: image/png");
        header ("Location: form_identification.html");
        }
        ?>

        <?php
        $image = imagecreatetruecolor (50,100) or die ("Impossible de crée un flux d'image GD");
        imagepng ($image);
        ?>


        Pouvez vous m'aider s'il vous plaît?
        0
      3. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   2 > pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour ,
        merci;
        Du fait qu'il n'est pas possible d'intégrer une image dans une page HTML je dois insérer ceci dans mon script
        print("<img src='test_image.php?'>");

        et dans mon script test_image.php mettre les élements me permettant d'afficher mon image.

        Soit
        <?php
        //on appelle la session
        session_start();
        //on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
        if(isset($_SESSION['user_login']))
        {
        $user_login=$_SESSION['user_login'] ;

        print("You are logged as <b>$user_login</b><br><br>");

        }
        else
        {
        header ("Location: form_identification.html");
        }
        ?>


        <?php
        print("<img src='test_image.php?'>");
        ?>


        et dans test_image.php

        $x = 210;
        $y = 120;

        $im = imagecreatetruecolor ($x,$y) or die ("Impossible de crée un flux d'image GD");
        imagepng ($im);
        0
  2. Grunt Messages postés 2845 Statut Contributeur 301
     
    Tu peux essayer le SVG aussi ;+)
    0