[Résolu] Générer un texte sur une image

Petit nouveau ! | 3 Messages

21 mai 2012, 19:40

Bonjour,

Je suis sûr que ce n'est qu'une bête erreur de syntaxe mais je bloque depuis 3 heures dessus.
Le script suivant ne génère qu'une image sans le texte.
Je ne vois pas ce qui ne vas pas.

Code : Tout sélectionner

<?php header("Content-type: image/png"); // Récupération des valeurs $height = (!empty($_GET['height']))?$_GET['height']:200; $text = (!empty($_GET['service']))?$_GET['service']:'Service'; // Génération de l'image $image = imagecreatetruecolor(40, $height); // Conversion code couleur HTML vers RGB $color = "CCCCCC"; $rouge = hexdec(substr($color,0,2)); $vert = hexdec(substr($color,2,2)); $bleu = hexdec(substr($color,4,2)); // imagecolorallocate (resource $image ,int $red ,int $green ,int $blue) $color = imagecolorallocate($image, $rouge, $vert, $bleu); // Modifier la variable d'environnement pour GD (police ttf dans le rep du script) putenv('GDFONTPATH=' . realpath('.')); $size = 14; $angle = 90; $font = 'verdana'; //Calcule la longueur et la largeur du texte $bbox = imagettfbbox ($size, $angle, $font, $text); $textWidth = $bbox[2] - $bbox[0]+1; $textHeight = $bbox[3] - $bbox[7]+1; //ajuste la position horizontale pour centrer $x -= $textWidth; $x /= 2; //ajuste la position verticale pour centrer $y -= $textHeight; $y /= 2; // Normalement écrit sur l'image imagettftext ($image, $size, $angle, $x, $y, $color, $font, $text); //renvoie une image sous format png imagepng($image); //détruit l'image pour libérer l mémoire imagedestroy($image); ?>
Merci pour votre aide.
Modifié en dernier par bunob le 21 mai 2012, 22:45, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

21 mai 2012, 20:49

Regardes le retour de imagettftext(). Si c'est false c'est que l'écriture a échoué.
Peut être le fichier de la police qui n'est pas trouvé par exemple.

Petit nouveau ! | 3 Messages

21 mai 2012, 21:20

Il me renvoie un Array.

Petit nouveau ! | 3 Messages

21 mai 2012, 22:44

J'ai revu le centrage de l'image, elle est parfaitement centrée :

Code : Tout sélectionner

<?php header("Content-type: image/png"); // Récupération des valeurs $height = (!empty($_GET['height']))?$_GET['height']:200; $width = 40; $text = (!empty($_GET['service']))?$_GET['service']:'Service'; // Génération de l'image $image = imagecreatetruecolor($width, $height); // Conversion code couleur HTML vers RGB $color = "CCCCCC"; $rouge = hexdec(substr($color,0,2)); $vert = hexdec(substr($color,2,2)); $bleu = hexdec(substr($color,4,2)); $color = imagecolorallocate($image, $rouge, $vert, $bleu); // Modifier la variable d'environnement pour GD (police ttf dans le rep du script) putenv('GDFONTPATH=' . realpath('.')); $size = 11; $angle = 90; $font = 'verdana'; $textWidth = $bbox[2] - $bbox[0]+1; $textHeight = $bbox[3] - $bbox[7]+1; // Ajuste la position horizontale pour centrer $width -= $textWidth; $width /= 2; $x = $width + $size/2; //ajuste la position verticale pour centrer $height -= $textHeight; $height /= 2; $y = $height - $size/2; // Ecrit sur l'image imagettftext ($image, $size, $angle, $x, $y, $color, $font, $text); //renvoie une image sous format png imagepng($image); //détruit l'image pour libérer l mémoire imagedestroy($image); ?>