[ 989 087 ]
[ 38.107.191.82 ]
La Librairie GD (Les textes et polices)Nous allons voir comment écrire du texte sur une image GD. La fonction permettant d'ecrire un texte horizontal. imagestring($image, $font_size, $x, $y, $string, $couleur); La fonction permettant d'ecrire un texte vertical. imagestringup($image, $font_size, $x, $y, $string, $couleur); $font_size est la taille du texte, GD nous permet d'avoir 5 tailles de textes différentes. $string est la chaîne de caractères à écrire. Attention ! GD ne sait pas renvoyer automatiquement à la ligne si la chaîne est trop longue. - Exemple de textes horizontal et vertical :
<?php
header("Content-type: image/png");
$x = 150;
$y = 150;
$image = imagecreatetruecolor($x,$y);
$rouge = hexdec("cc");
$vert = hexdec("99");
$bleu = hexdec("cc");
$couleur = imagecolorallocate($image,$rouge,$vert,$bleu);
imagestring($image, 2, 30, 10, "Texte horizontal", $couleur); //on écrit horizontalement
imagestringup($image, 2, 70, 130, "Texte vertical", $couleur); //on écrit verticalement
imagepng($image);
imagedestroy($image);
?>
Résultat : Les polices de caractèresIl est possible de changer la police de caractères par défaut, avec une police du type TTF(.ttf). La fonction permettant de changer la police de caractères. imagettftext($image, $font_size, $angle, $x, $y, $couleur, $font_filename, $text); Attention ! Cette fonction nécessite que GD soit compilé avec le support de FreeType 2.x, donc GD2. $font_size est la taille du texte, exprimé en pixels (GD2) ou en points de 1 à 5 (GD1), comme citer précédemment. $angle est l'angle du texte, exprimé en degrés. Pour un texte horizontal il faudra mettre 0 (pour 0°). $font_filename est le nom de fichier de la police TTF à utiliser. $text est la chaîne de caractères à écrire. - Exemple avec un texte incliné à 45° de taille 12px, avec une police de caractères "ft41.ttf" et un texte horizontal de taille 10px, avec une police de caractères "ft81.ttf" :
<?php
header("Content-type: image/png");
$x = 150;
$y = 150;
$image = imagecreatetruecolor($x,$y);
$rouge = hexdec("cc");
$vert = hexdec("99");
$bleu = hexdec("cc");
$couleur = imagecolorallocate($image,$rouge,$vert,$bleu);
/* /fonts/ est le répertoire ou vous stockerez la police utilisée.
$_SERVER["DOCUMENT_ROOT"] indique le chemin absolus ou votre base de site se situe. */
putenv('GDFONTPATH='.$_SERVER["DOCUMENT_ROOT"].'/fonts/'); //ligne obligatoire !
imagettftext($image, 12, 45, 30, 130, $couleur, 'ft41', 'Voici un texte'); //on écrit le premier texte
imagettftext($image, 10, 0, 90, 130, $couleur, 'ft81', 'Cool !!!'); //on écrit le second texte
imagepng($image);
imagedestroy($image);
?>
Remarque : La fonction "putenv()" définit une variable d'environnement. Elle est obligatoire ! Résultat : |