GD pour les nuls

Fermé
riecola Messages postés 22 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 7 avril 2006 - 14 févr. 2006 à 18:36
ricric Messages postés 34 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 11 mai 2006 - 8 avril 2006 à 14:17
Bonjour a tous,
Voila je suis obligé de travailler avec du GD, et j'y connais absolument rien... J'ai cherché sur les sites mais je trouve hyper compliqué... (on ne se moque pas)
J'ai bien mis en route le GD sur easy php, je suis sur et certain que c'est activé.
Alors si je suis un code pris sur internet :
<?php
header("Content-type:image/jpeg");
$im=imagecreatefromjpg("anniv1.jpg");
imagejpg($im);
?>

Donc si j'appele cette page essai.php, il faut bien que je fasse une autre page essai.html:
<html>
<body>
<img src="essai.php">
</body>
</html>


Alors quand j'ouvre cette page par le serveur j'ai un carré blanc avec croix rouge!!!! pourquoi? le chemin de mon image est bon alors c'est quoi le bleme?
Merci a tous ceux qui me repondront. Je vous rappelle je suis nul, alors des mots simples s'il vous plait...

6 réponses

riecola Messages postés 22 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 7 avril 2006
14 févr. 2006 à 19:42
pffffff , c'est toujours après que la solution saute aux yeux... c'est bon j'ai réussi à afficher ce que je voulais.

cependant si vous pouvez me dire comment écrire sur mon image en GD je veux bien!!!

Merci
0
Ca serait bien de partager ta solution, plutot que de laisser un message disant que tu as trouvé... car moi je galère avec le même probleme, mais avec tout le code dans la meme page!
0
riecola Messages postés 22 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 7 avril 2006
6 avril 2006 à 21:16
salut!
Je me rappele plus de ce qui marchait pas mais voila code qui transforme un image jpeg en GD:

<?php  
header("Content-type:image/jpeg");
$src_im=imagecreatefromjpeg("anniv1.jpg");
$src_w=imagesx($src_im);
$src_h=imagesy($src_im);
$dst_w=floor($src_w*0.5);
$dst_h=floor($src_h*0.5);

$dst_im=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
imagejpeg($dst_im);
imagedestroy($dst_im);
imagedestroy($src_im);
?>

Mets bien ton image ds meme dossier que ce fichier.php

En plus si tu veux rajouter du texte dessus voila (dans un nouveau fichier.php)
<?php

$nom_image = $_POST["image"];
$texte = $_POST["texte"];
$var1 = "Bonjour ".$_POST["destinataire"].", ".$_POST["expediteur"]." vous envoie cette carte";
$message = $_POST ["verso"];


header ("Content-type: image/jpeg"); 
$image = imagecreatefromjpeg($nom_image); 
$image_w=imagesx($image);
$image_h=imagesy($image);
$dst_w=floor($image_w*1.5);
$dst_h=floor($image_h*1.5);

function centrage_texte($z,$y) 
    { 
      
        $a = strlen($z); 

        $b = imagefontwidth($y); 
      
        $c = $a*$b; 
 
        $d = 759-$c; 

        $e = $d/2;     
     
        return $e;         
    } 

$dst_im=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($dst_im,$image,0,0,0,0,$dst_w,$dst_h,$image_w,$image_h);
$noir = imagecolorallocate($dst_im, 0, 0, 0);
$blanc = imagecolorallocate($dst_im, 255, 255, 255);
$policeTitre = 10; 
imageFilledRectangle ($dst_im,240,240,520,280,$blanc);
imagestring($dst_im, $policeTitre,centrage_texte($var1,$policeTitre),5,$var1,$noir);
imagestring($dst_im, 10, 0, 400,$message,$noir);
imagestring($dst_im,$policeTitre,centrage_texte($texte,$policeTitre),250,$texte,$noir);   


imagejpeg($dst_im);
?>
<img src="anniversaire.php"/>

(les variables proviennent d'un formulaire)
J'ai pas reussi à melanger du texte php et image en gd, il faut gere des sesions ou des cookies parait il. DOnc le texte ici sera en GD (c'est tjs mieux que rien)
Normalement ca marche au pire je peux t'envoyer mon dossier zipé
0
ricric Messages postés 34 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 11 mai 2006 7
7 avril 2006 à 15:40
"J'ai pas reussi à melanger du texte php et image en gd"

Bonjour
Qu'entends-tu par cette phrase ?
Ton code écris bien du texte sur une image.

C'est quoi cettte histoire de mélange ??
0

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

Posez votre question
riecola Messages postés 22 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 7 avril 2006
7 avril 2006 à 16:06
SAlut

Quand je dis que je ne reussis pas à mélanger du texte PHP et une image GD c'est que je voulais qu'il y ait affiché "bonjour, voila la prévisualisation de votre carte" en caractère comme sur une page HTML ,et qu'en dessous il y ait l'image en GD puis qu'a nouveau on ait un texte normal type HTML pr le message de la Ecard.

Or si je veux mettre un texte echo en php et que je le met avant le code qui genere l'image GD on a juste l'image, le texte n'apparait pas.
Si je met le texte echo php après le code GD j'ai le texte mais le serveur interprete mon image dans un charabia pas possible.
Mon prof m'a dit que pour faire ce que je voulais il me fallait des sessions ou des cookies (pour enregistrer les variables du formulaires). Comme je ne savais pas faire ca je me suis débrouillée.

Donc le code si dessus marque le texte non pas en caractère normal ms interpreté en GD (c'est pourquoi la qualité des lettres est médiocre).c'est la seule facon que j'ai trouvé pour mettre du texte et une image GD quand on y connait rien.
J'espere que j'ai reussi à etre claire.
0
ricric Messages postés 34 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 11 mai 2006 7
8 avril 2006 à 14:17
Riecola--> >Merci, j'ai maintenant compris ton problème.
Jeje--> en reprenant le code de Riecola, voici une solution pour afficher, dans une page HTML, une image modifiée en utilisant la bibliothèque GD.

1 Page html avec le formulaire de saisie des champs
******************************************
image
texte
destinataire
expediteur
verso

2 Page html (XXX est à remplacer par les valeurs saisies lors de l'étape précédente)
******************
ICI code HTML à placer avant l'image modifiée<br />
<img src="anniversaire.php?image=XXX&texte=XXX&destinataire=XXX&expediteur=XXX&verso=XXX" />
<br /><br />
ICI Code HTML à placer après l'image modifiée<br />

3 anniversaire.php (script appellé lors du chargement de la page 2)
***************
<?php
function centrage_texte($z,$y) {
$a = strlen($z);
$b = imagefontwidth($y);
$c = $a*$b;
$d = 759-$c;
$e = $d/2;
return $e;
}

$nom_image = $_POST["image"];
$texte = $_POST["texte"];
$var1 = "Bonjour ".$_POST["destinataire"].", ".$_POST["expediteur"]." vous envoie cette carte";
$message = $_POST ["verso"];

header ("Content-type: image/jpeg");
$image = imagecreatefromjpeg($nom_image);
$image_w=imagesx($image);
$image_h=imagesy($image);
$dst_w=floor($image_w*1.5);
$dst_h=floor($image_h*1.5);

$dst_im=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($dst_im,$image,0,0,0,0,$dst_w,$dst_h,$image_w,$image_h);
$noir = imagecolorallocate($dst_im, 0, 0, 0);
$blanc = imagecolorallocate($dst_im, 255, 255, 255);
$policeTitre = 10;
imageFilledRectangle ($dst_im,240,240,520,280,$blanc);
imagestring($dst_im, $policeTitre,centrage_texte($var1,$policeTitre),5,$var1,$noir);
imagestring($dst_im, 10, 0, 400,$message,$noir);
imagestring($dst_im,$policeTitre,centrage_texte($texte,$policeTitre),250,$texte,$noir);
imagejpeg($dst_im);
?>
********************************
0