Afficher des images en php

Résolu/Fermé
Benjamin46 - 3 févr. 2010 à 17:37
 olivier stern - 8 févr. 2010 à 15:25
Bonjour,

Je souhaiterais maintenant afficher une image sous PHP mais je rencontre des difficultés. J'ai un formulaire qui propose différentes actions selon le choix de l'utilisateur et lorsque le formulaire est validé, l'image apparait selon ses choix. Pour cela j'utilise des variables. Seulement, si je veux afficher une image en la générant en PHP, ca ne fonctionne pas. Je vous explique :

Le script ci-dessous fonctionne parfaitement. Si par exemple l'utilisateur a choisit l'extension .com alors le lien sera www.site.com etc etc. L'image s'affiche.

<html>
<body>
<?php
echo "<img src='http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif'/>";
?>
</body>
</html>

Par contre, pour ce code, l'image ne s'affiche pas :

<?php
header ("Content-type: image/png");
$lien = http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif;
$image = imagecreatefromjpeg($lien);
imagepng($image);
?>

Pourquoi ? Merci d'avance pour votre aide.

12 réponses

BobbaGame Messages postés 31 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 31 mai 2011
3 févr. 2010 à 18:10
tu as oublier un ' ... Voici le bon code

<?php
header ("Content-type: image/png");
$lien ='http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif;
$image = imagecreatefromjpeg($lien);
imagepng($image);
?>

Cordialement
0
Votre code n'a pas l'air de fonctionner malheureusement. A savoir que la vraie adresse comporte plus de deux variables (mais ca ne change rien au problème du moins je crois) et l'image de départ est en gif. Je me demande si :

Content-type: image/png ne doit pas être Content-type: image/gif
et si imagecreatefromjpeg($lien); ne doit pas être imagecreatefromgif($lien);
ainsi que imagepng($image); ne doit pas être imagegif($image);

Cependant j'ai fait des petits tests mais rien de concluant. J'ai donc toujours ce problème. Merci d'avance pour vos prochaines réponses.
0
Personne pour m'aider ? C'est vraiment important :x
0
*up* (je sais, un triple post c'est pas top mais c'est urgent et si je ne poste pas le sujet va tomber dans l'oubli :x)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ok je vous aide

Vous avez une image gif et vous souhaitez créer une gif a partir de la jpeg et afficher une image png.
Ca va pô quoi.

écrivez imagecreatefromgif
et imagegif a la place de vos deux fonctions.

Sinon consulter le manuel GD2 de php pour passer d'un format à un autre
0
Et pareil pour le header j'avais pas vu remplacer image/png par image/gif
0
J'ai modifié ce que vous avez dit olivier, mais ca ne marche toujours pas. Voici les deux codes que j'ai utilisé :

<?php
header ("Content-type: image/gif");
$lien = http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif;
$image = imagecreatefromgif($lien);
imagegif($image);
?>


et (ici, j'ai ajouté les ' ') :


<?php
header ("Content-type: image/gif");
$lien ='http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif';
$image = imagecreatefromgif($lien);
imagegif($image);
?>

Ou est donc l'erreur ?
0
Toujours personne ? :x
0
Bonjour,

Quel erreur vous est renvoyée par le navigateur ?

Avez-vous vérifié que la librairie GD était installée ?
Pour le savoir, executez la fonction php_info() et le navigateur vous affichera le détail des fonctions installées.

Pour des détails sur chaque fonction de manipulation graphique, rendez vous sur php.net.

je vais quand meme tester votre code pour voir ce qui pourrait ne pas aller.

Cordialement,

Olivier Stern
0
Utilisez ce code fournit par php.net.
la fonction pour regarder la version de php et GD installée, toutes mes excuses, c'est phpinfo().

php.net ptrévient en outre :
"Warning

Windows versions of PHP prior to PHP 4.3.0 do not support access of remote files via this function, even if allow_url_fopen is enabled. "

C'est à dire

"Attention

Les versions php pour windows antérieures au PHP 4.3.0 ne permettent pas l'accès à des fichiers distant par cette fonction (imagecreatefromgif), même si allow_url_fopen est activé".

Bien cordialement.

P.S. : dans l'exemple ci dessous remplacez "amour.gif" par $lienet ça devrait marcher

Olivier

<?php
function LoadGif($imgname)
{
/* Attempt to open */
$im = @imagecreatefromgif($imgname);

/* See if it failed */
if(!$im)
{
/* Create a blank image */
$im = imagecreatetruecolor (150, 30);
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);

imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

/* Output an error message */
imagestring ($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('essai.gif');

imagegif($img);
imagedestroy($img);
?>
0
La librairie GD est bien activée car ce petit code fonctionne (j'ai pris une image du parrain et elle s'affiche bien) :

<?php
header ("Content-type: image/jpeg");
$image = imagecreatefromjpeg("https://eyeonfilm.files.wordpress.com/2009/03/the-godfather-poster-c12172921.jpg");
imagejpeg($image);
?>

Donc comment faire pour afficher une image depuis un lien qui contient des variables (ces variables sont récupérées depuis un formulaire) ?
0
Je vous dit "utilisez ce code mais ne vous le donne pas " autant pour moi.
Le voici :

<?php
function LoadGif($imgname)
{
/* Attempt to open */
$im = @imagecreatefromgif($imgname);

/* See if it failed */
if(!$im)
{
/* Create a blank image */
$im = imagecreatetruecolor (150, 30);
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);

imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

/* Output an error message */
imagestring ($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}

return $im;
}
$lien ='http://www.site".$_POST['extension']."/nom=".$_POST['name']."&format=gif';

header('Content-Type: image/gif');

$img = LoadGif($lien);

imagegif($img);
imagedestroy($img);
?>
0