Manipulation d'images en PHP - Librairie GD

Auteur: Mohamed CHINY Durée necessaire pour le cours de Manipulation d'images en PHP - Librairie GD Niveau recommandé pour le cours de Manipulation d'images en PHP - Librairie GD Supports vidéo non disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz non disponibles pour ce cours

Page 6: Dessiner les formes de base - Deuxième partie

Toutes les pages

Arcs et polygones

Les arcs: fonctions imageacr() et imagefilledarc()

La fonction imagearc($img , $cx , $cy , $l , $h , $ang_debut , $ang_fin , $couleur) permet de dessiner un arc creux. Les paramètres sont les mêmes que pour les ellipses car un arc n'est rien d'autre qu'une partie d'une ellipse. $cx et $cy désignent le centre de l'ellipse qui sert de guide. $l et $h indiquent la largeur et la hauteur de l'ellipse et $couleur la couleur de la bordure de l'arc. Cependant, il faut ajouter deux autres paramètres qui sont $ang_debut et $ang_fin qui désignent respectivement l'angle de début et de fin de l'arc. Les deux angles sont exprimés en degré.

Notez que l'ellipse est tracé dans le sens horaire (dans le sens des aiguilles d'une montre) et l'angle 0 correspond à la position trois heures.

La fonction imagefilledarc() permet de dessiner un arc plein. Elle a exactement les mêmes paramètres que la fonction imagearc() sauf qu'il faut ajouter un dernier (après $couleur) qui désigne le style de l'arc et qui peut prendre une des valeurs suivantes:
  • IMG_ARC_PIE: permet de relier les deux extrémités de l'arc par une ligne qui traverse le centre de l'ellipse guide. L'espace entre l'arc et la ligne est rempli.
  • IMG_ARC_EDGED: donne le même résultat que IMG_ARC_PIE.
  • IMG_ARC_CHORD: permet de relier les deux extrémités de l'arc en passant par le centre de l'ellipse guide. L'espace entre ce centre et la ligne est rempli.
  • IMG_ARC_NOFILL: revient à déclarer la fonction imagearc(). Elle n'applique aucun remplissage.

En général c'est IMG_ARC_PIE qui est utilisé pour réussir des diagrammes camembert (ou en secteurs).

Exemple:
<?php
   header("content-type:image/png");
   $x=400;
   $y=300;
   $img = imagecreatetruecolor($x,$y);
   $gris = imagecolorallocate($img,220,220,220);
   $bleu = imagecolorallocate($img,0,0,200);
   imagefill($img,0,0,$gris);
   imagearc($img,$x/4,$y/2,$x/2-25,$x/2-25,0,270,$bleu);
   imagefilledarc($img,3*$x/4,$y/2,$x/2-25,$x/2-25,0,270,$bleu,IMG_ARC_PIE);
   imagepng($img);
?>
Ce qui donne:

Les polygones: fonctions imagepolygon() et imagefilledpolygon()

La fonction imagepolygon($img , $tab_points , $nbr_points , $couleur) permet de dessiner les polygones (y compris les triangles). Le paramètres $tab_points est une variable de type tableau qui renferme les coordonnées des points du polygone. Le paramètre $nbr_points désigne le nombre de points de celui-ci (il doit être égal à la moitié du nombre d'éléments du tableau des coordonnées).

La fonction imagefilledpolygon() permet de dessiner un polygone plein. Elle a les mêmes paramètres que la fonction imagepolygon().

Exemple:
<?php
   header("content-type:image/png");
   $x=400;
   $y=300;
   $img = imagecreatetruecolor($x,$y);
   $gris = imagecolorallocate($img,220,220,220);
   $bleu = imagecolorallocate($img,0,0,200);
   imagefill($img,0,0,$gris);
   imagepolygon($img,array(25,25,$x/2-25,25,$x/4,$y-25),3,$bleu);
   imagefilledpolygon($img,array($x/2+25,25,$x-25,25,3*$x/4,$y-25),3,$bleu);
   imagepng($img);
?>
Ce qui donne: