Texte et couleur



C'est bon, vous avez votre baguette magique ? 
Alors voici ce que nous allons apprendre à faire maintenant :

  • manipuler les couleurs ;
  • écrire du texte.

Vous allez commencer à voir un peu ce qu'il est possible de faire grâce à la bibliothèque GD, mais vous verrez plus loin qu'on peut faire bien plus.


Manipuler les couleurs

Un ordinateur — il faut le savoir — décompose chaque couleur en Rouge-Vert-Bleu. En mélangeant les quantités de rouge, de vert et de bleu, ça nous donne une couleur parmi les millions de possibilités !


On indique la « quantité » de rouge, de vert et de bleu par un nombre compris entre 0 et 255.

  • Par exemple, si je dis que je mets 255 de bleu, ça veut dire qu'on met tout le bleu.
  • Si je mets 100 de bleu, il y a un peu moins de bleu.
  • Si je mets 0, alors là il n'y a plus du tout de bleu.


On doit écrire les trois quantités dans l'ordre RVB (Rouge Vert Bleu). Par exemple :
(255 0 0).
Ça, c'est une couleur qui contient plein de rouge, et pas du tout de vert ni de bleu. C'est donc la couleur… rouge ! Bravo !


Maintenant, si je mets plein de rouge et de vert :
(255 255 0).
Ça nous donne la couleur : jaune !


Allez, un dernier essai pour la route et on arrête là :
(255 128 0).
Ça, c'est la couleur orange !


Pour info, la couleur blanche correspond à (255 255 255), et la couleur noire à (0 0 0).

Si vous avez un logiciel de dessin comme Paint et que vous allez dans le menu Couleur / Modifier les couleurs, vous pouvez choisir la couleur que vous voulez, comme sur la figure suivante.



Sélection d'une couleur



Comme vous pouvez le voir, en cliquant sur la couleur qui vous intéresse on vous donne les quantités de Rouge Vert Bleu.
Vous pouvez donc choisir la couleur que vous voulez. Allez-y, servez-vous.

Mais revenons à ce qui nous intéresse : PHP.


Pour définir une couleur en PHP, on doit utiliser la fonction imagecolorallocate.

On lui donne quatre paramètres : l'image sur laquelle on travaille, la quantité de rouge, la quantité de vert, et la quantité de bleu.
Cette fonction nous renvoie la couleur dans une variable. Grâce à cette fonction, on va pouvoir se créer des « variables-couleur » qui vont nous être utiles pour indiquer ensuite la couleur.


Voici quelques exemples de création de couleur :

<?php

header ("Content-type: image/png");

$image = imagecreate(200,50);

 

$orange = imagecolorallocate($image, 255, 128, 0);

$bleu = imagecolorallocate($image, 0, 0, 255);

$bleuclair = imagecolorallocate($image, 156, 227, 254);

$noir = imagecolorallocate($image, 0, 0, 0);

$blanc = imagecolorallocate($image, 255, 255, 255);

 

imagepng($image);

?>


Une chose très importante à noter : la première fois que vous faites un appel à la fonction imagecolorallocate, cette couleur devient la couleur de fond de votre image.

Donc, si vous avez bien compris, ce code doit créer une image… toute orange !


Si j'avais voulu que le fond soit blanc et non orange, il aurait fallu placer $blanc en premier.

Voilà, vous savez maintenant créer toutes les couleurs de l'arc-en-ciel en PHP.


Écrire du texte

Nous voici enfin dans le vif du sujet (ouf !). Nous avons une belle image avec un maaagnifique fond orange, et nous voulons y écrire du texte.
Avec la fonction imagestring, c'est facile !


Cette fonction prend beaucoup de paramètres. Elle s'utilise comme ceci :

<?php

imagestring($image, $police, $x, $y, $texte_a_ecrire, $couleur);

?>


Il existe aussi la fonction imagestringup qui fonctionne exactement de la même manière, sauf qu'elle écrit le texte verticalement et non horizontalement !

Je vous détaille ci-dessous les paramètres dans l'ordre, c'est important que vous compreniez bien.

  • $image : c'est notre fameuse variable qui contient l'image.
  • $police : c'est la police de caractères que vous voulez utiliser. Vous devez mettre un nombre de 1 à 5 ; 1 = petit, 5 = grand. Il est aussi possible d'utiliser une police de caractères personnalisée, mais il faut avoir des polices dans un format spécial qu'il serait trop long de détailler ici. On va donc se contenter des polices par défaut. ;-)
  • $x et $y : ce sont les coordonnées auxquelles vous voulez placer votre texte sur l'image. Et là vous vous dites : « Aïe, ça sent les maths » (comme quoi les maths, ça sert). Vous devez savoir que l'origine se trouve en haut à gauche de votre image. Le point de coordonnées (0, 0) représente donc le point tout en haut à gauche de l'image.

Voici, en figure suivante, le schéma de notre image orange de tout à l'heure, qui est de taille 200 imes 50 :



Coordonnées de l'image



Notez que les coordonnées de l'image s'arrêtent à (199, 49) et non à (200, 50) comme on pourrait s'y attendre. En effet, il ne faut pas oublier qu'on commence à compter à partir de 0 ! De 0 à 199 il y a bien 200 points. Comme vous pouvez le voir, j'ai marqué les quatre points des côtés de l'image. (0, 0) se trouve tout en haut à gauche, et (199, 49) se trouve tout en bas à droite.

$        texte_a_ecrire, c'est le… texte que vous voulez écrire. Non, non, il n'y a pas de piège.

$        couleur, c'est une couleur que vous avez créée tout à l'heure avec imagecolorallocate.


Voici un exemple concret de ce qu'on peut faire :

<?php

header ("Content-type: image/png");

$image = imagecreate(200,50);

 

$orange = imagecolorallocate($image, 255, 128, 0);

$bleu = imagecolorallocate($image, 0, 0, 255);

$bleuclair = imagecolorallocate($image, 156, 227, 254);

$noir = imagecolorallocate($image, 0, 0, 0);

$blanc = imagecolorallocate($image, 255, 255, 255);

 

imagestring($image, 4, 35, 15, "Salut les Zéros !", $blanc);

 

imagepng($image);

?>


La ligne contenant imagestring peut se traduire par : Mets dans l'image $image, avec la police de taille 4, aux coordonnées (35, 15), le texte « Salut les Zéros ! », de couleur blanche.

Créé avec HelpNDoc Personal Edition: Révolutionnez votre production de documentation avec l'interface utilisateur étonnante de HelpNDoc