Page 1 sur 1

génération d'image

Posté : 26 juin 2011, 19:20
par marcpirat
salut

je tente de générer une image avec ce code

Code : Tout sélectionner

header("Content-Type: image/png"); $im = @imagecreate(110, 20) or die("Impossible d'initialiser la bibliothèque GD"); $background_color = imagecolorallocate($im, 0, 0, 0); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "A Simple Text String", $text_color); imagepng($im); imagedestroy($im);
a l'affichage je n'est que: ‰PNG

une idée

Re: génération d'image

Posté : 27 juin 2011, 09:24
par Mazarini
Bonjour,

Tu peux essayer faire :
$im = @imagecreate(110, 20) or die("Impossible d'initialiser la bibliothèque GD");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
Le déplacement du header te permettra de vérifier qu'il n'y a pas eu des envois de caractères qui faussent le flux de l'image.

Re: génération d'image

Posté : 27 juin 2011, 18:58
par marcpirat
même résultat

Re: génération d'image

Posté : 28 juin 2011, 07:13
par epommate2
- Essaye d'enlever le @ devant imagecreate

- essaye de faire la même chose avec un jpg

Re: génération d'image

Posté : 28 juin 2011, 19:56
par marcpirat
avec ceci une image est généré

Code : Tout sélectionner

<?php $im = imagecreatetruecolor(120, 20); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'Un texte simple', $text_color); imagejpeg($im, 'simpletext.jpg'); imagedestroy($im); ?>
mais si je met

Code : Tout sélectionner

imagejpeg($im, 'null);
ou bien

Code : Tout sélectionner

imagejpeg($im);
j'obtiens

ÿØÿà

je tente en fait dans un script je fais appel à un autre pour générer une image

Code : Tout sélectionner

$code = gen_reg_key(); echo '<div><br/>Code <img src="generate_img.php?code='.base64_encode($code).'" alt="img" /><br/></div>';
mon script generate_img.php

Code : Tout sélectionner

$im = ImageCreate (100, 50) or die ("Erreur lors de la creation de l'image"); $bgcolor = ImageColorAllocate ($im, 0,0,0); $textColor = ImageColorAllocate ($im, 0,0,0); ImageString ($im, 5, 20, 15,base64_decode($_GET['code']),$textColor); header ("Content-type: image/jpeg"); ImageJpeg ($im); ImageDestroy($im);
quand je fais afficher que l'image j'ai que: ÿØÿà

Re: génération d'image

Posté : 29 juin 2011, 06:19
par epommate2
Et avec le content-type ?
header("Content-Type: image/jpeg");

Re: génération d'image

Posté : 29 juin 2011, 11:06
par dogmongo
bonjour,

imagejpeg($im, 'null); <--- enleve la cote
// On ne fournit pas le nom du fichier (utilisation de la valeur NULL),
// puis, on définit la qualité à 75%
imagejpeg($im, NULL, 75);
moi j'aurai plutôt fais un truc comme ca
$font = './police.ttf';			  
$width  = 120 ;
$height = 20 ;
$thumb = imagecreatetruecolor($width,$height);
$text_color = imagecolorallocate($im, 255, 255, 255);
imagettftext($im,11, 0, 12, $hauteur - 20 , $colortexte, $font, "Un texte simple");
imagejpeg($thumb, "nomdemonimage");
imagedestroy($image);
a+

Re: génération d'image

Posté : 30 juin 2011, 19:30
par marcpirat
Et avec le content-type ?
header("Content-Type: image/jpeg");
même problème

Re: génération d'image

Posté : 30 juin 2011, 19:33
par marcpirat
bonjour,

imagejpeg($im, 'null); <--- enleve la cote
en fait j'avais pas la quote dans le code....
// On ne fournit pas le nom du fichier (utilisation de la valeur NULL),
// puis, on définit la qualité à 75%
imagejpeg($im, NULL, 75);
moi j'aurai plutôt fais un truc comme ca
$font = './police.ttf';			  
$width  = 120 ;
$height = 20 ;
$thumb = imagecreatetruecolor($width,$height);
$text_color = imagecolorallocate($im, 255, 255, 255);
imagettftext($im,11, 0, 12, $hauteur - 20 , $colortexte, $font, "Un texte simple");
imagejpeg($thumb, "nomdemonimage");
imagedestroy($image);
a+

le problème en mettant un nom d'image c'est que l'image est sauvegardé sur disque.... pas vraiment performant sans compté que ça causerait problème moindrement que plusieurs personne exécuterait le script..