Pseudo Mot de passe
fleche Inscription
fleche Mot de passe oublié ?
Informations Générales
Chargement en cours...
Nombre de Visites fleche [ 989 087 ]
Votre IP fleche [ 38.107.191.82 ]
Vous êtes ici : Home Page Cours PHP Librairie GD (Les textes et polices)
Imprimer le document Version Imprimable

Informations Générales

[416] Posts sur le forum
[422] Membres inscrits
Il y a en ligne :
arrow 0 Membre
arrow 3 Invités
fled Membre en ligne:
Aucun

Partenariat

Partenariat Vous pouvez aider ce site à évoluer, en contribuant à son développement. Proposez vos idées de cours et/ou dossiers.
Rendez-vous dans « Partenariat » pour en savoir plus.


Publicité


Prestataire

N°1 de l'hébergement, location de serveurs, nom de domaines et téléphonie.
(OVH est recommandé par Webelix.net)

www.

Nos Partenaires

Page précédente |

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.
La valeur 1 seras la plus petite taille et la valeur 5 sera la plus grande taille de texte.

$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 :

Texte horizontal et vertical

Les polices de caractères

Il 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 !
Si vous ne la mettez pas, vous ne définissez pas l'endroit où est stocké la police et cela renverra une erreur.
Certain fournisseur comme Free, n'autorise pas cette fonction. Pour palier à ce problème, il faudra supprimer la ligne "putenv()" puis écrire dans "imagettftext()", le chemin du fichier police .ttf.
Comme ceci "./fonts/ft41.ttf".

Résultat :

Texte avec une police TTF
Page précédente |
Haut de page