Probleme de génération d'image dynamique

Eléphanteau du PHP | 46 Messages

20 avr. 2006, 17:44

Bonjour

Je souhaite prendre une image de fond et y superposer du texte, le tout de façon dynamique en php.
Voici le bout de code :
// le nom du fichier "fond de page
$fichier="100/lotr/communaute/badge/norme.png";
// generation de l'image à partir du "fond de page"
$im = imagecreatefrompng($fichier) or die ("Erreur lors de la création de l'image");      
// texte à insérer
$texte="Maître";
// definition de la couleur du texte + inscription de ce meme texte
$text_color = imagecolorallocate ($im, 255, 255, 255);
imagestring ($im, 1, 5, 5,  $texte, $text_color); 
// affichage de l'image
header ("Content-type: image/png"); 
imagepng ($im);
imagedestroy($im);
Voici ce que je mets dans mon fichier où l'image est insérée :

Code : Tout sélectionner

<img src="100/communaute/badge.php">
Le résultat : un petit carré comme si l'image n'existait pas !

Avez vous des idées sur le problème et/ou une autre méthode pour faire ca ?

Merci d'avance

Eléphanteau du PHP | 25 Messages

20 avr. 2006, 18:22

ton code me semble correct.. sauf pour les chemains

D'un coté
$fichier="100/lotr/communaute/badge/norme.png"; 
avec lotr

d'un autre coté..

Code : Tout sélectionner

<img src="100/communaute/badge.php">
sans lotr
Cordialement Thierry.

Eléphanteau du PHP | 46 Messages

21 avr. 2006, 08:42

ok, je suis un boulet !!! merci pour tout... je me suis rendu compte de cette ENORME boulette ce matin en relisant mon code... décidément, avant de poster un truc ici je ferais bien de dormir un peu et de relire calmement mon code.



seb
je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... je suis un boulet... et je sors !

Eléphanteau du PHP | 46 Messages

21 avr. 2006, 09:07

et ben non... fait chier !

en fait, outre ce chemin ca marche pas quand meme, et ce qui est le plus étrange, c'est qu'une autre génération d'image fonctionne très bien !

Voici le lien test :

Il y a la dessus 2 images générées : mail et badge.
La première permet d'afficher l'adresse mail sans qu'elle puisse etre récupérée facilement (c'est donc une image).
La seconde (le carré indiquant que l'image est inaccessible) est un fond sur lequel devrait apparaitre un texte (c'est en relation avec le terme badge utilisé au dessous).

Ce qui est "marrant", c'est ce message :

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/7/e/sbarbay/lotr/include/meta.php:7) in /var/www/free.fr/7/e/sbarbay/lotr/100/communaute/badge.php on line 2 ‰PNG IHDRH«M¦ƒ0PLTE‹£Ñÿÿÿo
Modifié en dernier par moorf le 21 avr. 2006, 15:11, modifié 1 fois.

Eléphanteau du PHP | 46 Messages

21 avr. 2006, 09:10

NB : merci de ne pas essayé d'exploiter les données que j'ai donnée ci-dessus ; je post ici en toute confiance, j'espère avoir raison.

Eléphanteau du PHP | 46 Messages

21 avr. 2006, 09:19

Bon laissez tomber : je suis un véritable boulet de compétition et je ne suis décidément opérationnel qu'après une bonne nuit de sommeil et un café !

J'explique.

Le premier script (mail) de génération d'image ne fait que du dynamique pur sans insertion d'image déjà existante, donc tout fonctionne sans probleme parce qu'il est bon et c'est tout (voici le code pour info) :

Code : Tout sélectionner

<?php header ("Content-type: image/png"); $im = imagecreate(400,30); $texte=$_GET['adresse']; $background_color = imagecolorallocate ($im, 255, 255, 255); imagecolortransparent($im,$background_color); $text_color = imagecolorallocate ($im, 0, 0, 0); imagestring ($im, 5, 5, 5, $texte, $text_color); imagepng ($im); imagedestroy($im); ?>
Le second script utilise des images.
Voici le chemin où se trouve le fichier script : 100/communaute/badge.php
Voici le chemin où se trouve les images : 100/communaute/badge/*.png
Le probleme venait de ca :

Code : Tout sélectionner

$im = imagecreatefrompng(100/communaute/badge/test.png)
En effet, le chemin a indiquer dans le script est le chemin par rapport à ce script ! Donc la ligne doit être :

Code : Tout sélectionner

$im = imagecreatefrompng(badge/test.png)
Voilà mon erreur.

Merci à thierry pour sa rapidité et ses infos qui m'ont quand meme mis sur la voix.



seb
je sors...

Eléphanteau du PHP | 25 Messages

21 avr. 2006, 10:58

pas de probleme... tu sait on ne vois pas toujours ces erreurs ;-)

Tous le monde fais des erreurs betes.. et on passe parfois bien du temps avant de s'en appercevoir ^^

n'oublie pas [Resolu] si tous est OK
++
Cordialement Thierry.