Page 1 sur 1

Probleme de génération d'image dynamique

Posté : 20 avr. 2006, 17:44
par moorf
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

Posté : 20 avr. 2006, 18:22
par thierry59
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

Posté : 21 avr. 2006, 08:42
par moorf
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 !

Posté : 21 avr. 2006, 09:07
par moorf
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

Posté : 21 avr. 2006, 09:10
par moorf
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.

Posté : 21 avr. 2006, 09:19
par moorf
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...

Posté : 21 avr. 2006, 10:58
par thierry59
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
++