Version complète: sur le forum Webmaster Hub : GD quand tu nous tiens
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Gecko64
Bonjour, j'essaie de faire aller la librairire GD mais j'ai un souci sad.gif
J'ai récupéré un code sur internet montrant le fonctionnement de base mais quand je le fais tourner, il me dis que l'image générée comporte des erreurs et ne peut de ce fait être affichée dans mon navigateur internet.

CODE
<?php
    // on spécifie le type de document que l'on va créer (ici une image au format PNG  
    header ("Content-type: image/png");  

    // on dessine une image vide de 200 pixels sur 100  
    $image = @ImageCreate (200, 100) or die ("Erreur lors de la création de l'image");  

    // on applique à cette image une couleur de fond, les couleurs étant au format RVB, on aura donc ici une couleur rouge  
    $couleur_fond = ImageColorAllocate ($image, 255, 0, 0);  

    // on dessine notre image PNG  
    ImagePng($image);
?>


Une chose me chiffonne déjà dans ce code est qu'il stock des informations dans la variable $couleur_fond mais je vois nulle part son utilisation...
Je ne sais pas si quelqu'un peut m'éclairer la dessus? smile.gif

Merci d'avance.
f_trt
Le plus simple serait que tu commences par regarder le tuto ici :
http://php.developpez.com/faq/ et plus précisement http://php.developpez.com/faq/?page=bibliotheques la partie 2.1

Tu suis pas à pas c'est un super début.

A+
Gecko64
Ok je vais jeter un œil la smile.gif
Merci wink.gif
Dudu
Salut

Le fameux message "l'image générée comporte des erreurs" ne vient pas de PHP !
C'est le navigateur qui génère ce message d'erreur.

Je t'invite à un peu de lecture: Erreurs courantes en PHP sur le Site du Zéro

La solution donnée dans le lien (supprimer le header()) devrait t'aider wink.gif
Gecko64
Oui en effet en virant le header, j'ai le contenu qui s'affiche mais va trouver l'erreur la dedans : �PNG  ��� IHDR�������d����H�H���PLTE���� 7���IDATx�������à�S� U�� (�qg������IEND�B`�

Je ne suis pas encore néo moi tongue.gif
Je vais regarder sur le net mais a mon avis je ne suis pas le seul a avoir eu ce problème la.
Ce qui m'étonne surtout, c'est que c'est un bête code donné sur un site dont personne se plaind de son mauvais fonctionnement nonono.gif

ps: Voilà le lien du site ou j'ai été chercher le code en question : http://www.lephpfacile.com/cours/22-la-librairie-gd
destroyedlolo
C'est quoi comme navigateur ?

Vu que tu reçois du binaire le probleme vient
  • soit du navigateur qui ne comprend par le PNG
  • soit que ta librairie GD est pourrie
  • soit que t'as un probleme reseau (au sens large, hein, ca peut etre aussi le serveur ou ton PC) qui fait que l'image n'est pas entierement recue.


Enfin, evidement si le code que tu utilise est celui que tu as donne en exemple.
Gecko64
Je suis sous Mozilla Firefox3.0.1 avec Windows XP en SP2.
Ici j'ai mis un peu de côté pcq j'ai d'autres soucis a résoudre dans mon code mais dès que j'ai le temps, je vais tester avec IE pour voir ce que ca donne smile.gif

Je précise que j'ai viré le header comme m'a dit Dudu wink.gif
captain_torche
Et tu n'as pas de message d'erreur lisible (les caractères sont le "code source" de l'image), donc c'est ailleurs que le problème se situe wink.gif
Dan
Fais un essai avec ce code :

CODE
<?php
header("Content-type: image/png");
$im = @imagecreate(110, 20)  or die("Ne peut pas initialiser GD");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Un Simple Texte", $text_color);
imagepng($im);
imagedestroy($im);
?>

et dis-nous ce que ça donne !
Gecko64
Ca donne ceci Dan: L'image “http://127.0.0.1/test/gdpicture.php” ne peut être affichée car elle contient des erreurs. unsure.gif
Sous IE aussi, j'ai une zone image mais rien qui s'affiche... sad.gif
Dan
J'obtiens moi aussi cette erreur lorsque je désactive GD2 ... whistling.gif
Assure-toi que c'est bien activé q_smallexcla.gif

En l'activant, cela marche parfaitement !
destroyedlolo
N'as tu que ca qui s'affiche ? Tu n'a aucun code devant le header ?
Ca ressemble fort a un header pas pris en compte (car FF3 supporte evidement le PNG).
Gecko64
CITATION(Dan @ lundi 22 septembre 2008 à 14:53) *
J'obtiens moi aussi cette erreur lorsque je désactive GD2 ... whistling.gif
Assure-toi que c'est bien activé q_smallexcla.gif

En l'activant, cela marche parfaitement !


Ben c'est activé chez moi pourtant O_o'

voir ceci : http://img145.imageshack.us/my.php?image=libgdyq8.png

Je me demande si mon WAMP ne me fait pas un petit caca nerveux O_o'
Je vais essayer a partir de mon serveur linux d'exécuter ce code et voir ce que ca me donne smile.gif

EDIT: Bon ok, wamp me fait un caca mou.
Sous linux ca donne ceci : http://gecko64.homelinux.net/~gecko64/test/gd.php

Mais pq? Ca je me le demande bien... En plus je devrai présenter mon travail sous wamp sad.gif
Dan
Tu n'es pas un problème de firewall ?
Sous wamp cela fonctionne parfaitement chez moi... avec la bibliothèque GD2 activée. J'ai Wamp 1.7.3 (ce n'est pas la dernière version)

Gecko64
Je travaille entièrement en localhost, c'est ca que je ne comprend pas...
J'ai aussi vérifié avec le site du zéro que la lib était bien activée et elle l'est...

Je vais tenter une upgrade de wamp sinon je ne vois vraiment pas wacko.gif
Je suis en version wamp2.0 pour le moment...

Mis a jour, toujours le même souci... Je suis maudit sad.gif
Dan
Regarde à nouveau si tu as activé GD ... j'ai du mal avec ton image, le serveur ne répond pas...
Clique sur l'icône de wampserver->Php->Extensions Php->php_gd2 doit être coché !

Eventuellement, décoche la, redémarre les services, et coche la à nouveau.

J'ai fait l'upgrade de wamp chez moi et ça tourne parfaitement !
Gecko64
Un ami a testé mon lien et il répond chez lui...
J'ai viré WAMP en entier et tout remis à la dernière version mais malgré cela, ca ne marche pas... sad.gif
Faut pas chercher, je suis maudit... evil.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.