Rechercher : dans
Par :

Problème d'affichage d'image avec PHP et GD

Dernière réponse le 4 sep 2009 à 18:46:53 marc311, le 23 nov 2004 à 21:40:19 
 Signaler ce message aux modérateurs

Bonjour,

Lorsque je lance un script PHP devant créer une image (avec GD) j'obtiens systématiquement le message suivant :

"L'image ne peut-être affichée car elle contient des erreurs"

Lorsque je visualise la config PHP, GD est bien installé

Comment corriger ce dysfonctionnement ?
Merci

Meilleures réponses pour « Problème d'affichage d'image avec PHP et GD » dans :
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...
Afficher les images et les animations Flash dans le navigateur VoirQuand vous allez sur un site internet, vous n'avez plus d'images affichées ; elles sont remplacées par un petit rectangle avec un carré rouge ou un triangle bleu (par exemple). 1 - Vérifier d'abord les paramètres de votre navigateur : Pour...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
PHP - Affichage de texte sur le navigateur VoirLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...

1

nassdak, le 24 oct 2006 à 14:14:11

Tu dois mettre ce code avant toute chose

header ("Content-type: image/jpeg"); // pour une image jpg
header ("Content-type: image/png");//pour une iamge png
...etc...

Répondre à nassdak

2

wenpou, le 20 nov 2007 à 20:13:32

Où doit on mettre ce code ?
Merci :)

Répondre à wenpou

3

Duche, le 16 déc 2007 à 17:39:02

J'ai le même problème.
Même en mettant uniquement

<?php
header("Content-type: image/png"); //la ligne qui change tout !
$x = 50; //largeur de mon image en PIXELS uniquement !
$y = 100; //hauteur de mon image en PIXELS uniquement !

/* on créé l'image en vraies couleurs avec une largeur de 50 pixels et une hauteur de 100 pixels */
$image = imagecreatetruecolor($x,$y);
imagepng($image); //renvoie une image sous format png
imagedestroy($image); //détruit l'image, libérant ainsi de la mémoire
?>

qui est présenté en tuto ici:
http://mtodorovic.developpez.com/php/gd/?page=page_2

Ca m'affiche le même message d'erreur !

Répondre à Duche

4

val3512, le 16 déc 2007 à 17:40:27
  • +1

Faut que tu mettent ce code pour qu'il reconnaisse le format :

header ("Content-type: image/jpeg");
header ("Content-type: image/png");

v@l

Répondre à val3512

5

Duche, le 16 déc 2007 à 17:44:19

Ca ne change rien du tout... il faut le mettre où ce code ?
Pas avant la balise php quand meme ? :-/

Répondre à Duche

6

Cedric, le 26 fév 2009 à 23:36:16

Je pense que c'est juste après la balise php. Mais j'ai des soucis aussi... Alors ...

Je pense donc que ce n'est pas juste une histoire de "headers" vu que j'ai le meme message, que je ne demande l'affichage directement, et que ça deconne ponctuellement seulement. Je vais raconter mes petites misères mais ça peut représenter une piste vu que ça fonctionne quand meme.

Je récupère un texte dans une base, et GD me le convertit bien en image. Mais quand je créé un nouveau texte parfois ça ne fontionne pas.

Je n'avais pas réussi en modifiant les headers, j'ai donc demandé à ce qu'il m'enregistre l'image que j'appelle ensuite.

Bon je vous préviens le code est pas terrible.

Le fichier create_image.php :

<?php


$im = imagecreate(480, 130);

$bg = imagecolorallocatealpha($im, 255, 255, 255, 127);

// Création de quelques couleurs
$magenta = imagecolorallocatealpha($im, 255, 0, 255, 75);
$cyan = imagecolorallocatealpha($im, 0, 161, 255, 75);
$jaune = imagecolorallocatealpha($im, 255, 255, 0, 75);
$col_ellipse2 = imagecolorallocatealpha($im,108, 155, 200,75);
$col_ellipse = imagecolorallocatealpha($im, 209, 89, 33,50);
$bleu_fonce = imagecolorallocate($im, 0, 46, 95);
$jaune_clair = imagecolorallocate($im, 255, 243, 191);
$grey = imagecolorallocate($im, 158, 102, 56);
imagefilledrectangle($im, 0, 0, 399, 29, $transparent);

// Remplacez le chemin par votre propre chemin de police
$font = 'polices/vivaldi.ttf';


// Ajout texte de fond transparent
//imagettftext($im, 40, 0, -5, 80 , $bleu_trans, $font, $texteaconvertir);
// On dessine l'ellipse
$x_magenta = mt_rand(350, 400);
$y_magenta = mt_rand(50, 75);
$x_jaune = mt_rand(350, 400);
$y_jaune = mt_rand(50, 75);
$x_cyan = mt_rand(350, 400);
$y_cyan = mt_rand(50, 75);
imagefilledellipse ($im, $x_magenta, $y_magenta, 15, 15, $magenta);
imagefilledellipse ($im, $x_jaune, $y_jaune, 15, 15, $jaune);
imagefilledellipse ($im, $x_cyan, $y_cyan, 15, 15, $cyan);


imageellipse($im, 150, 45, 300, 70, $col_ellipse);

imageellipse($im, 160, 50, 320, 90, $col_ellipse2);



imagettftext($im, 34, 0, 15, 58 , $grey, $font, $texteaconvertir);
// Ajout d'ombres au texte


imagettftext($im, 34, 0, 17, 61 , $jaune_clair, $font, $texteaconvertir);

// Ajout du texte
imagettftext($im, 34, 0, 16, 59, $bleu_fonce, $font, $texteaconvertir);

$adresse = "img/img_texte/".$id.".png";
imagepng($im, $adresse); // on enregistre l'image dans le dossier "images"
?>

et dans le fichier de contenu :

...
$texteaconvertir = $rubrique['titre'];

include ("create_image.php");

<img class=\"img_text\" src=\"img/img_texte/".$rubrique['id'].".png\" alt=\"".$texteaconvertir."\"></div>

imagedestroy($im);

Répondre à Cedric

7

 JuJu], le 4 sep 2009 à 18:46:53

Si tu as crée ton image sur une page à part comme :
image.php
et que tu souhaite l'appeler sur une autre page n'utilise pas la fonction "include" ou je ne sais quoi.
Utilises la balise <img src="image.php" alt="image"/>

J'ai eu le même souci que toi, et je l'ai résolu de cette manière !

A plus !

Répondre à JuJu]