IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[OpenTBS] Comment intégrer une image à un template ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut [OpenTBS] Comment intégrer une image à un template ?
    Bonsoir,
    Voila, j'ai actuellement un gros soucis, et j'ai besoin d'aide. Je voudrais intégrer une image à un template.
    Tout d'abord j'ai une fonction php qui créée cette image:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    function getImage()
    {
       header("content-type:image/jpeg");
       $noir=ImagecolorAllocate ($image,0,50,80);
       ....
       imagefill ($image,0,0,$noir);
       ....
       ....
       imagejpeg($image);
       imageDestroy($image);
     
    }
    ?>
    En fait je voudrais l'intégrer à mon template.
    J'avais donc pensé faire un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $maPage->assign_vars(array('truc'=>bidule,'img'=>getImage()));
    ?>
    Hors cela ne fonctionne pas, ça m'affiche l'image mais pas dans le template. Ca l'affiche comme lorsque l'on fait un echo, sur la sortie standard et non là ou je veux. Comment puis je faire? J'ai comme contrainte de ne pas sauvegarder l'image sur le serveur. Merci de toutes vos suggestions.

    Y a t'il un moyen d'intégrer une image créée dynamiquement, sans l'enregistrer?
    Si l'on doit l'enregsitrer, comment faire pour les supprimer au fur et a mesure afin qu'elle ne s'accumule pas sur el serveur?

    J'avais fait un truc comme ça mais sans succés,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $path=getImage();
    $page->assign_var('img','<img src="'.$path.'" .... />');
    $page->affichePage('mapage.tpl');
    unlink($path);
    ?>

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Le principe habituel pour afficher une image est le suivant :
    Un script contient le code PHP pour générer l'image dès qu'on l'appelle en GET (pas une fonction mais bien un script simple).
    Un fichier utilise la balise HTML <img> pour appeler le premier script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="script.php" alt="..."/>
    En voyant le tag <img>, ton navigateur s'occupera de faire une 2° requête HTTP distincte de la première, de récupérer l'image et de l'afficher dans le tag.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut
    Tout d'abord merci de ta réponse.
    J'ai testé mais cela ne fonctionne pas
    J'ai un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function graphe($tabVal)
    {
       $noir=ImagecolorAllocate ($image,0,50,80);
       ....
       imagefill ($image,0,0,$noir);
       ....
       ....
       imagejpeg($image);
    }
    ?>
    Appel à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $template->assign_block_vars('chose',array('graphe' => '<img src="'.$objet->graphe($valeur).'" width="500" height="250" />',
                                                                        '...'=>'.............',
                                                                        '....'=>'..........'));
    ?>
    Lorsque j'exécute la page, l'image apparait bien, mais il n'y a que elle sur la sortie. C'est un peu comme si elle ecrasée tout ce qu'il y avait avant. Si je met la ligne en commentaire donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $template->assign_block_vars('chose',array(//'graphe' => '<img src="'.$objet->graphe($valeur).'" width="500" height="250" />',
                                                                        '...'=>'.............',
                                                                        '....'=>'..........'));
    ?>
    Hormis l'image, tout s'affiche bien. Dés que je fais appel à l'image celle ci ce créée bien mais écrase tout le reste. D'où peut venir le problème?

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    On reprend...
    Tu ne peux pas mettre l'image directement dans ton code HTML. Il faut que ton image soit un fichier à part :
    • Un document HTML
    • Une image
    => 2 fichiers séparés, 2 scripts séparés.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut
    Mais la je ne là met pas directement dans le HTML. Je la génére dans ma page php et je vais l'associer à l'endroit voulu du template. Je n'ai pas compris un truc?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oui, il faut que tu comprennes que ce que tu fais ne produit qu'une requête HTTP de la part du navigateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="<?php echo $objet->graphe($valeur); ?>" width="500" height="250" />
    Ce que je te propose oblige le client à faire 2 requêtes HTTP séparées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="script-image.php" width="500" height="250" />

Discussions similaires

  1. [MySQL] Comment intégrer une image à la base de données et au fichier (image) en même temps
    Par mt_mousse dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/12/2015, 20h52
  2. Réponses: 1
    Dernier message: 15/03/2013, 16h28
  3. Comment intégrer une image dans un programme Delphi
    Par DanCode dans le forum Débuter
    Réponses: 8
    Dernier message: 03/03/2010, 13h06
  4. Comment intégrer une image dans le code ?
    Par delphi+ dans le forum Delphi
    Réponses: 5
    Dernier message: 06/04/2007, 14h56
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo