begin process at 2010 03 20 06:28:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

question sur gd2


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

question sur gd2

jeudi 10 avril 2008 à 14:58:18 | question sur gd2

fabienenvac

bonjour,
Je viens d'utiliser gd2 afin de creer un png,

J'ai deux questions lorsque dans imagepng($im,'image.png'); je specifie une destination , J'ai le message d'erreur suivant :
L'image "http://localhost/image.php" ne peut être affichée car elle contient des erreurs.

alors que quand je mets imagepng($im); la mon image s'affiche.

Deuxieme question, lorsque  j'integre une rotation je suis obliger de redefinir mon image $im=imagerotate($im, 45, $rouge);
alors qu'avec les autres fonction je n'ai pas besoin de faire ainsi ( pas de $im=)

une fois ma rotation fini je ne peux faire fonctionner imagefilltoborder($im,100,50,$background_color,$vert);
toute mon image devient noir pourquoi ????

Merci pour votre aide

voici mon code

<?php

header("Content-type: image/png");
$im = imagecreate(200, 200)  or die("Impossible d'initialiser la bibliothèque GD");
$background_color = imagecolorallocate($im, 100, 90, 255);

$text_color = imagecolorallocate($im, 255, 255, 255);
$rouge=imagecolorallocate($im,255,0,0);
$vert = ImageColorAllocate($im, 0, 255, 0);
$bleu = ImageColorAllocate($im, 0, 0, 255);


// On dessine l'ellipse blanche
imagefilledellipse($im, 100, 100, 150, 100, $rouge);



//$im=imagerotate($im, 45, $rouge);

imagefilltoborder($im,100,50,$background_color,$vert);
imagestring($im, 1, 50, 97,  "creation d'image", $text_color);
//imagecolordeallocate($im, $vert);
imagecolortransparent  ( $im, $background_color );

imagepng($im,'image.png');
imagedestroy($im);


?>

jeudi 10 avril 2008 à 16:20:01 | Re : question sur gd2

neigedhiver

Salut,

Quand tu utilises l'argument dest dans la fonction imgpng(), la fonction va écrire le fichier sur le disque dur. Si ensuite tu veux y accéder via le web, il faut spécifier l'URL du fichier créé, pas l'url du script PHP.
Ton script envoit le header de contenu dès la première ligne : ton navigateur s'attend donc à afficher une image : en entier, c'est à dire qu'il ne s'attend pas à trouver du texte.

Pour ta deuxième question, que vaut la variable $vert ?
Ce doit être un identifiant de ressource qui pointe sur une couleur. Cf la doc :
color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()


Pour pouvoir afficher des messages d'erreur pendant le script (avec des die() pour le debug par exemple), tu devrais mettre le header juste avant l'utilisation de la fonction imgpng(), pas plus tôt. D'une manière générale, un entête de contenu doit être envoyé uniquement quand on est assuré que le contenu va bien être envoyé, et pas avant.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
jeudi 10 avril 2008 à 17:07:58 | Re : question sur gd2

fabienenvac

salut,
ma variable $vert vaut $vert = ImageColorAllocate($im, 0, 255, 0); ( comme indique dans le premier post)

j'ai vraiment des problemes avec la rotation lorsque je fais ma rotation je perds la transparance de mon image, ainsi lorsque je souhaite faire des coins pour les menu par example et ben je n'ai plus qu'une image avec du transparent...
Comment faire???

Pour ma premiere question lorsque je defini ma adresse de destination imagepng($im,'image.png'); je n'ai plus la possibilite d'afficher l'image directement?

Et pour la deuxieme pourquoi lors de la rotation on doit reaffecte l'image? de cette sorte $im=imagerotate($im, 45, $rouge);

Merci


jeudi 10 avril 2008 à 17:21:17 | Re : question sur gd2

neigedhiver

Réponse acceptée !
Re,
ma variable $vert vaut $vert = ImageColorAllocate($im, 0, 255, 0); ( comme indique dans le premier post)

LOL j'ai pas fait gaffe... Petits yeux moi aujourd'hui...
Désolé donc pour cette question à la noix.

j'ai vraiment des problemes avec la rotation lorsque je fais ma rotation je perds la transparance de mon image, (...)
Comment faire???
http://fr.php.net/manual/fr/function.imagerotate.php#46338

imagerotate does not preserve the alpha channel, so if you want to rotate a PNG you need to get
creative.
Lire la suite du commentaire qui indique la marche à suivre. D'autres commentaires dans la doc peuvent aussi être pertinents.

Pour ma premiere question lorsque je defini ma adresse de destination imagepng($im,'image.png'); je n'ai plus la possibilite d'afficher l'image directement?
Si. Mais pas avec son URL. L'URL, c'est du texte qui indique au navigateur om trouver l'image. Si tu l'envoie avec imagepng, ce n'est pas du texte qui est envoyé, mais l'image elle-même.

Tu peux donc tout à fait enregistrer ton image sur le disque dur du serveur, et renvoyer dans du html, l'url vers cette image. Cependant, dans un même script, c'est pas forcément recommandé.
Tu peux aussi enregistrer l'image sur le disque dur, et la renvoyer également directement au navigateur.

Si ton script renvoit l'image au navigateur, avec un entête de contenu, il ne doit rien renvoyer d'autre.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...


Cette discussion est classée dans : image, png, color, im, imagecolorallocate


Répondre à ce message

Sujets en rapport avec ce message

génération d'image [ par noyoug ] NoyougCe script me génère des hiéroglyphes à la place de mon image.Qqun a-t-il une explication ?La fonction header me génère aussi un warning.header ( Image [ par bm67 ] Programme; $image=imagecreate(80,80<FONT color=#0080 Impossible de créer une image [ par nougitch ] Bonjour,Je suis sous EasyPhp v.1.8 et impossible de générer la moindre image avec ce code de test :$im = @ ImageCreate ( 150, 100) or die ( "Cannot cr Problème de chargement d'image dans un tableau [ par cascad ] j'ai un problème avec ce bout de code, header ("Content-type: image/png"); $source[0][0] = imagecreatefrompng("herbe.PNG"); $source[0][1] = imagecrea Librairire GD [ par boulika ] Bonjour,Je viens de faire un code qui scan en local toutes les polices et qui fait un apercu des polices sous forme d'une image générée .Mais mon code Couper Image a l'aide SVP [ par christ_sand ] Voila je voudrai couper le bandeau de mon image pour la metttre dans la galerie photo mais le prob c que je coupe le Bas et pas le hau je vous remerci installe jpgraph [ par wasim ] bonsoir;quelqu'un porra m'aider à propos de l'installation de jpgraph sous windows?et sur debian?en faite j'ai telechargé le zip et j'ai activé le fic PDF to IMAGE (jpg ou png) [ par _benjy ] Salut à tousJ'ai une p'tite question, je cherche un class ou un p'tite fonction permettant de générer une image (jpg, png, voir mm gif) a partir d'un affichage de vignettes [ par bidoubidou ] Bonjour a tous, je suis nouveau dans le coin, et dans la programmation tout court, je souhaite générer un affaichage de vignettes à la volée pour un s Impression d'une image générée dynamiquement [ par vincentstryckmans ] Salut, Je génère dynamiquement une image que je nomme 'png_'.$_SESSION['session_id'].'.png'Voici le script que j'appelle dans une balise html pour af


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales