begin process at 2010 02 10 11:27:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Comment intégrer une image à un template?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment intégrer une image à un template?

mardi 1 avril 2008 à 21:19:23 | Comment intégrer une image à un template?

takinelinfo

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:
<?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:
<?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,
<?php
$path=getImage();
$page->assign_var('img','<img src="'.$path.'" .... />');
$page->affichePage('mapage.tpl');
unlink($path);
?>

mardi 1 avril 2008 à 23:25:38 | Re : Comment intégrer une image à un template?

neigedhiver

Réponse acceptée !
Salut,

Décidément, il va vraiment falloir que je fasse un tuto sur comment fonctionne PHP par rapport au code HTML. Il s'agit là d'une des bases du fonctionnement d'un serveur web. Sans vouloir être méchant, il me parait difficile de faire du développement web sans avoir assimilé ça.

Une image générée à la volée, est un fichier complet envoyé par HTTP. Quand dans le code HTML le navigateur rencontre une balise du genre :
<img src="/images/monimage.png" alt="Mon image" />
le navigateur effectue une AUTRE requpete sur le serveur HTTP, lui demandant de lui envoye l'image. Il recevra l'image et l'affichera à sa place, en fonction du code HTML.
Le serveur HTTP ne fera rien d'autre que fournir un fichier image.

Or, dans ton template, tu veux afficher l'image... Erreur... Tu veux générer du HTML qui affiche une image. C'est pas pareil.
Dans ton template, tu lui fournis l'url de l'image. Le navigateur va alors demander au serveur HTTP de lui fournir l'image que le navigateur lui demande.

L'image peut être de n'importe quelle nature : un fichier image (.png, .jpg, .gif, ...) ou un script qui génère une image.
Après tout, qu'est-ce qu'une image si ce n'est une série de 1 et de 0 arrangés de telle façon qu'avec le bon traitement l'oeil ne perçoive quelque chose qu'il connait ou peu interpréter ?

L'URL peut donc tout à fait être du style :
<img src="/images/dynamiques/image.php?param=valeur" alt="Mon image générée à la volée" />

A ce moment là, le navigateur va appeler le script image.php avec comme argument param=valeur. C'est le serveur HTTP qui va se charger de gérer cette url (s'agit-il d'un fichier brut à renvoyer tel quel, ou bien d'un script à passer à un interpréteur, comme par exemple PHP ?).
Le navigateur s'attend simplement à recevoir des octets qui, mis bout à bout, forment une image. Il s'en cogne royal de savoir si l'url est celle d'un fichier, d'un script PHP, Python ou autre. Il demande simplement à Apache de lui envoyer les données qui correspondent à cette URL. Le navigateur, quand il les reçoit, puisqu'il s'agit d'une balise <img>, s'attend à recevoir une image et traite le résultat de sa demande comme telle : il affiche ce qu'il pense être une image (tant pis si c'en est pas une et que ça plante : il n'affichera rien)

Pour revenir à ton problème : tu dois prévoir d'un côté un script qui génère l'image que tu veux. Il doit être capable de recevoir les arguments qui lui permettent de déterminer quelle image afficher (ou pas d'argument, il peut très bien afficher toujours la même image).
Dans ton template, tu dois simplement assigner à la variable l'url qui permet d'obtenir cette image (l'URL du script qui génère cette image, avec ou sans paramètres).

J'espère que c'est clair, parce que c'est vraiment élémentaire.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lundi 7 avril 2008 à 22:04:48 | Re : Comment intégrer une image à un template?

takinelinfo

Réponse acceptée !
Tout d'abord merci de ta réponse.
J'ai testé mais cela ne fonctionne pas
J'ai un truc comme ça:
<?php
function graphe($tabVal)
{
   $noir=ImagecolorAllocate ($image,0,50,80);
   ....
   imagefill ($image,0,0,$noir);
   ....
   ....
   imagejpeg($image);
}
?>

Appel à la fonction

<?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:
<?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?


Cette discussion est classée dans : image, truc, template, intégrer, getimage


Répondre à ce message

Sujets en rapport avec ce message

copier image [ par kishkaya ] je sais que j'ai deja poster un truc dans le meme genre mais bon la derniere fois j'ai plutot appris a lancer un script a heure fixe, maintentant j'ai agrendir image [ par stequer ] je voudrais savoir si il y a pas qqun qui ne connaitrai pas un truc pour agrendir une image sans perdre trop de qualiter car moi ai essyer un truc la caddie virtuel avec des sessions... [ par roul ] Bon, j'explique mon probleme, je débute en php et là je vais m'arracher les cheveux sur un truc qui à l'air tout simple, mais là j'en peux plus; alors image et GD [ par papipsycho ] salut a tous voila jai un pb donc jai un script qui marche tres bien pour cree des image et prendre des inf dans ma BDD(un script que jai recupere ici formulaire trés complex [ par akrudy ] voila au debut je faisait un simple formulaire en mailto, avec un upload d'image ( l'image ne me parvient pas)alors j'ai décider de choisir un autre m image dans mysql sous forme binaire ! [ par fmazoue ] bonjour mon pb c que j'ai enregistré des image jpeg dans ma base de donnée sous forme binaire (blob)et que je voudrai maintenant recuperer ces images image dans mysql sous forme binaire ! [ par fmazoue ] bonjour mon pb c que j'ai enregistré des image jpeg dans ma base de donnée sous forme binaire (blob)et que je voudrai maintenant recuperer ces images affichege d'image [ par lumikele ] Bonjour,je suis surement le plus débutant des débutant puisque jusqu'à 10 mn, je ne connaissais pas la php :-(J'ai fait plusieurs choses en html mais probleme de mise à jouer avec formulaire ! A l'aide ;) [ par ff2000 ] Salut à tous,voila, je suis en train de créer une partie admin avec dreamweaver.Une de mes pages doit inserer des donnée via des zones de textes (jusq aide image ! [ par poupinette10 ] je précise tjs que je débute :Voilà je voudrais dans une page afficher les données contenues dans ma table matière.j'arrive à ce que les données s'aff


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales