PHPImage

Methods Summary
Methods __construct
Vous pouvez créer un objet PHPImage par trois méthodes :
  1. Cette méthode est la plus simple et crée l'objet mais ne crée pas l'espace de dessin.
    C'est utile si vous voulez changer par exemple la couleur de fond par défaut avant de créer l'espace de dessin.
    $image = new PHPImage();
  2. Cette méthode crée l'objet à partir d'une image existante.
    Le format de l'image est le même que celui du fichier.
    $image = new PHPImage($mon_fichier_image_existant);
  3. Enfin la dernière méthode permet de créer l'objet et son espace de dessin en une seule ligne.
    $image = new PHPImage($largeur, $hauteur);

alphablending
L'alpha blending est une option permettant la fusion automatique des couleurs et transparence de pixel lors du dessin.
S'il est désactivé, le dessin se comporte de manière très simple en écrasant les couleurs existantes (cela est nécessaire lors de certaines opérations de traitement sur les images ou on veut mettre une couleur avec transparence spécifique à un endroit sans fusion avec la couleur déjà présente).
Cette option est activée par défaut.
$image = new PHPImage(200, 100);
$image->alphablending(true);
$image->alphablending(false);

cleanall
Cette méthode efface totalement le dessin en le recréant à vide.
$image->cleanall();

cleanat
Cette méthode efface le dessin à partir du point indiqué.
$image->cleanat($x, $y);

cleanrectangle
Cette méthode efface une portion de dessin de forme rectangulaire.
$image->cleanrectangle($x1, $y1, $x2, $y2);

cleanrectanglewh
Cette méthode efface une portion de dessin de forme rectangulaire.
$image->cleanrectanglewh($x1, $y1, $w, $h);

colorat
Cette méthode retourne un objet PHPImageColor de la couleur à la position donnée.
$color = $image->colorat($x, $y);
echo 'R = '.$color->R.'
'; echo 'G = '.$color->G.'
'; echo 'B = '.$color->B.'
'; echo 'A = '.$color->A.'
';

convolution
Applique une matrice de convolution sur l'image.
La matrice peut être 3x3, 5x5 ou 7x7.
Attention, cela peut être très consommateur de CPU.
  1. Syntaxe
    $image->convolution($matrix, $offset=0, $usealpha=false);
    
    $matrix   : tableau de valeurs ou bien valeurs séparées par des espaces
    $offset   : offset pour toutes les couleurs
    $usealpha : mettre à true pour utiliser la matrice sur la transparence
    
  2. Simple matrice de flou gaussien.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $matrix = '1 2 1  2 4 2  1 2 1';
    $image = new PHPImage('php.gif');
    $image->convolution($matrix);
    $image->format = 'png';
    $image->display();
  3. Pareil que précédemment mais avec flou sur la transparence.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $matrix = '1 2 1  2 4 2  1 2 1';
    $image = new PHPImage('php.gif');
    $image->convolution($matrix, 0, true);
    $image->format = 'png';
    $image->display();
  4. Pareil que précédemment mais avec offset décalé et matrice passée sous forme de tableau.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $matrix = array(array(1, 2, 1), array(2, 4, 2), array(1, 2, 1));
    $image = new PHPImage('php.gif');
    $image->convolution($matrix, 80, true);
    $image->format = 'png';
    $image->display();

copy
Copie une autre image sur l'image courante.
Chaque paramètre peut recevoir un entier ou un pourcentage.
  1. Syntaxe
    copy(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, 
         $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Simpe copie sans aucun paramètres.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copy($tux);
    $image->format = 'png';
    $image->display();
  3. Copie de l'image entière vers une position donnée.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copy($tux, 50, 20);
    $image->format = 'png';
    $image->display();
  4. Application d'une transparence.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    // transparency: 50%
    
    $image->copy($tux, 50, 20, 0, 0, 0, 0, '50%');
    $image->format = 'png';
    $image->display();
  5. Copie de la tête de Tux.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    // point source : top center ('50%', 0)
    
    // position of point source : top center
    
    // width source : 50% of tux width
    
    // height source : 40% of tux height
    
    $image->copy($tux, 0, 0, '50%', 0, '50%', '40%', 0, '', 'top center');
    $image->format = 'png';
    $image->display();
  6. Copie au centre en bas.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copy($tux, '50%', '100%', 0, 0, 0, 0, 0, 'center bottom');
    $image->format = 'png';
    $image->display();

copyresampled
Copie une autre image sur l'image courante en la redimensionnant proprement.
  1. Syntaxe
    copyresampled(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, $srcw=0, 
         $srch=0, $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $dstw   : largeur destination
    $dsth   : hauteur destination
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Simpe copie sans aucun paramètres.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresampled($tux);
    $image->format = 'png';
    $image->display();
  3. Hauteur de destination à 50%.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresampled($tux, 0, 0, 0, 0, 0, '50%', 0, 0);
    $image->format = 'png';
    $image->display();

copyresampledfit
Copie une autre image sur l'image courante en la redimensionnant proprement et en gardant les proportions largeur/hauteur.
  1. Syntaxe
    copyresampledfit(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, $srcw=0, 
         $srch=0, $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $dstw   : largeur destination
    $dsth   : hauteur destination
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Simpe copie sans aucun paramètres.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresampledfit($tux);
    $image->format = 'png';
    $image->display();
  3. Hauteur de destination à 50%.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresampledfit($tux, 0, 0, 0, 0, 0, '50%', 0, 0);
    $image->format = 'png';
    $image->display();

copyresized
Copie une autre image sur l'image courante en la redimensionnant (plus rapide que copyresampled mais moins bonne qualité).
  1. Syntaxe
    copyresized(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, $srcw=0, 
         $srch=0, $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $dstw   : largeur destination
    $dsth   : hauteur destination
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Simpe copie sans aucun paramètres.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresized($tux);
    $image->format = 'png';
    $image->display();
  3. Hauteur de destination à 50%.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresized($tux, 0, 0, 0, 0, 0, '50%', 0, 0);
    $image->format = 'png';
    $image->display();

copyresizedfit
Copie une autre image sur l'image courante en la redimensionnant proprement et en gardant les proportions largeur/hauteur (plus rapide que copyresampledfit mais moins bonne qualité).
  1. Syntaxe
    copyresizedfit(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, $srcw=0, 
         $srch=0, $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $dstw   : largeur destination
    $dsth   : hauteur destination
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Simpe copie sans aucun paramètres.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresizedfit($tux);
    $image->format = 'png';
    $image->display();
  3. Hauteur de destination à 50%.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $tux = new PHPImage('tux.gif');
    $image = new PHPImage('php.gif');
    $image->copyresizedfit($tux, 0, 0, 0, 0, 0, '50%', 0, 0);
    $image->format = 'png';
    $image->display();

create
Cela crée l'espace de dessin en précisant la largeur et la hauteur du dessin.
$image = new PHPImage();
$image->create(200, 100);

destroy
Cela détruit l'espace de dessin et libère la mémoire.
Pensez toujours à détruire vos images quand vous en avez plus besoin : cela est profitable au serveur.
$image = new PHPImage(200, 100);
// draw something

// ...

// and then

$image->destroy();

display
Retourne l'image au navigateur.
Cette méthode peut aussi enregistrer l'image en même temps qu'elle la renvoie au navigateur.
Elle sait aussi gérer un cache et renvoie les headers nécessaires.
  1. Affichage simple.
    $image = new PHPImage();
    $image->create(200, 100);
    $image->display();
    
  2. Affichage et enregistrement d'une image PNG.
    $image = new PHPImage();
    $image->create(200, 100);
    $image->display('image.png');
    
  3. Affichage et enregistrement d'une image JPG avec qualité précisée.
    $image = new PHPImage();
    $image->create(200, 100);
    $image->display('image.jpg', 85); // qualité: 0 à 100 (optionel).
    
  4. Affichage avec cache automatique.
    A noter qu'il ne faut pas créer d'espace de dessin avant d'utiliser la méthode display dans la condition du if.
    En fait si l'image existe déjà et qu'elle est encore valide (moins de 10 minutes), le premier display affiche l'image et retourne true.
    $image = new PHPImage();
    $image->cachetime = 600; // 10 minutes
    if (!$image->display('image.jpg')) {
    	$image->create(200, 100);
    	$image->display('image.jpg');
    }
    

drawarc
Dessine une partie de cercle.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawellipsearc($cx, $cy, $r, $start, $end, 
    	$linecolor='', $thickness=0, $linestyle='', $drawborders=false)
     
    $cx          : x centre
    $cy          : y centre
    $r           : rayon
    $start       : angle de début
    $end         : angle de fin
    $drawborders : dessine la ligne et début et de fin
    $linecolor   : couleur de la ligne
    $thickness   : épaisseur
    $linestyle   : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 360);
    $blue = 'blue 30%';
    $red  = 'red 30%';
    
    $image->drawarc('50%', '50%', 50, 45, 225, 'green 60%', 15, 'double', false);
    $image->drawarc('50%', '50%', 30, -135, 45, 'green 60%', 15, 'dot', false);
    
    $image->drawarc('20%', '10%', 20, 100, 380, $blue, 1, 'solid', false);
    $image->drawarc('50%', '10%', 20, 100, 380, $blue, 1, 'square', false);
    $image->drawarc('80%', '10%', 20, 100, 380, $blue, 1, 'dot', false);
    $image->drawarc('25%', '25%', 20, 100, 380, $blue, 1, 'dash', false);
    $image->drawarc('75%', '25%', 20, 100, 380, $blue, 1, 'bigdash', false);
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    );
    $image->drawarc('50%', '50%', 20, 45, 225, '', 1, $style);
    
    $image->drawarc('10%', '75%', 20, -100, 100, $red, 5, 'solid', true);
    $image->drawarc('33%', '75%', 20, -100, 100, $red, 5, 'square', true);
    $image->drawarc('57%', '75%', 20, -100, 100, $red, 5, 'dot', true);
    $image->drawarc('80%', '75%', 20, -100, 100, $red, 5, 'dash', true);
    $image->drawarc('20%', '90%', 20, -100, 100, $red, 5, 'bigdash', true);
    $image->drawarc('50%', '90%', 20, -100, 100, $red, 5, 'double', true);
    $image->drawarc('80%', '90%', 20, -100, 100, $red, 5, 'triple', true);
    $image->format = 'png';
    $image->display();

drawcircle
Dessine un cercle.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawellipse($cx, $cy, $r, $linecolor='', $thickness=0, $linestyle='')
     
    $cx        : x centre
    $cy        : y centre
    $r         : rayon
    $linecolor : couleur de la ligne
    $thickness : épaisseur
    $linestyle : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 360);
    $blue = 'blue 30%';
    $red  = 'red 30%';
    
    $image->drawcircle('50%', '50%', '40%', 'green 60%', 15, 'double');
    $image->drawcircle('50%', '50%', '20%', 'green 60%', 15, 'dot');
    
    $image->drawcircle('25%', '10%', 20, $blue, 1, 'solid');
    $image->drawcircle('50%', '10%', 20, $blue, 1, 'square');
    $image->drawcircle('75%', '10%', 20, $blue, 1, 'dot');
    $image->drawcircle('33%', '25%', 20, $blue, 1, 'dash');
    $image->drawcircle('67%', '25%', 20, $blue, 1, 'bigdash');
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    );
    $image->drawcircle('50%', '50%', '20%', '', 1, $style);
    
    $image->drawcircle('20%', '75%', 20, $red, 5, 'solid');
    $image->drawcircle('40%', '75%', 20, $red, 5, 'square');
    $image->drawcircle('60%', '75%', 20, $red, 5, 'dot');
    $image->drawcircle('80%', '75%', 20, $red, 5, 'dash');
    $image->drawcircle('25%', '90%', 20, $red, 5, 'bigdash');
    $image->drawcircle('50%', '90%', 20, $red, 5, 'double');
    $image->drawcircle('75%', '90%', 20, $red, 5, 'triple');
    $image->format = 'png';
    $image->display();

drawellipse
Dessine une ellipse.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawellipse($cx, $cy, $w, $h, $linecolor='', $thickness=0, $linestyle='')
     
    $cx        : x centre
    $cy        : y centre
    $w         : largeur
    $h         : hauteur
    $linecolor : couleur de la ligne
    $thickness : épaisseur
    $linestyle : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 360);
    $blue = 'blue 30%';
    $red  = 'red 30%';
    
    $image->drawellipse('50%', '50%', '90%', '90%', 'green 60%', 15, 'double');
    $image->drawellipse('50%', '50%', '50%', '50%', 'green 60%', 15, 'dot');
    
    $image->drawellipse('25%', '15%', 40, 50, $blue, 1, 'solid');
    $image->drawellipse('50%', '15%', 40, 50, $blue, 1, 'square');
    $image->drawellipse('75%', '15%', 40, 50, $blue, 1, 'dot');
    $image->drawellipse('33%', '35%', 40, 50, $blue, 1, 'dash');
    $image->drawellipse('67%', '35%', 40, 50, $blue, 1, 'bigdash');
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    );
    $image->drawellipse('50%', '50%', '90%', 20, '', 1, $style);
    
    $image->drawellipse('20%', '65%', 40, 50, $red, 5, 'solid');
    $image->drawellipse('40%', '65%', 40, 50, $red, 5, 'square');
    $image->drawellipse('60%', '65%', 40, 50, $red, 5, 'dot');
    $image->drawellipse('80%', '65%', 40, 50, $red, 5, 'dash');
    $image->drawellipse('25%', '85%', 40, 50, $red, 5, 'bigdash');
    $image->drawellipse('50%', '85%', 40, 50, $red, 5, 'double');
    $image->drawellipse('75%', '85%', 40, 50, $red, 5, 'triple');
    $image->format = 'png';
    $image->display();

drawellipsearc
Dessine une partie d'ellipse.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawellipsearc($cx, $cy, $w, $h, $start, $end, 
    	$linecolor='', $thickness=0, $linestyle='', $drawborders=false)
     
    $cx          : x centre
    $cy          : y centre
    $w           : largeur
    $h           : hauteur
    $start       : angle de début
    $end         : angle de fin
    $drawborders : dessine la ligne et début et de fin
    $linecolor   : couleur de la ligne
    $thickness   : épaisseur
    $linestyle   : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 360);
    $blue = 'blue 30%';
    $red  = 'red 30%';
    
    $image->drawellipsearc('50%', '50%', '90%', '90%', 40, 220, 'green 60%', 15, 'double', false);
    $image->drawellipsearc('50%', '50%', '50%', '50%', 40, 220, 'green 60%', 15, 'dot', false);
    
    $image->drawellipsearc('25%', '15%', 40, 50, 100, 380, $blue, 1, 'solid', false);
    $image->drawellipsearc('50%', '15%', 40, 50, 100, 380, $blue, 1, 'square', false);
    $image->drawellipsearc('75%', '15%', 40, 50, 100, 380, $blue, 1, 'dot', false);
    $image->drawellipsearc('33%', '35%', 40, 50, 100, 380, $blue, 1, 'dash', false);
    $image->drawellipsearc('67%', '35%', 40, 50, 100, 380, $blue, 1, 'bigdash', false);
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	$blue, $blue, $blue, $blue, $blue, $blue, $blue, $blue,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	$red , $red , $red , $red , $red , $red , $red , $red ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    	''   , ''   , ''   , ''   , ''   , ''   , ''   , ''   ,
    );
    $image->drawellipsearc('50%', '50%', '90%', 20, -45, 225, '', 1, $style);
    
    $image->drawellipsearc('10%', '65%', 40, 50, -100, 100, $red, 5, 'solid', true);
    $image->drawellipsearc('33%', '65%', 40, 50, -100, 100, $red, 5, 'square', true);
    $image->drawellipsearc('57%', '65%', 40, 50, -100, 100, $red, 5, 'dot', true);
    $image->drawellipsearc('80%', '65%', 40, 50, -100, 100, $red, 5, 'dash', true);
    $image->drawellipsearc('25%', '85%', 40, 50, -100, 100, $red, 5, 'bigdash', true);
    $image->drawellipsearc('50%', '85%', 40, 50, -100, 100, $red, 5, 'double', true);
    $image->drawellipsearc('75%', '85%', 40, 50, -100, 100, $red, 5, 'triple', true);
    $image->format = 'png';
    $image->display();

drawfilledcircle
Dessine un cercle plein.
  1. Syntaxe
    drawfilledcircle($cx, $cy, $r, $color='')
    
    $cx    : x center
    $cy    : y center
    $r     : rayon
    $color : couleur de remplissage
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 80);
    $image->drawfilledcircle('50%', '50%', 30, 'blue');
    $image->drawfilledcircle('17%', '50%', '40%', 'red 50%');
    $image->drawfilledcircle('83%', '50%', '20%', 'yellow 20%');
    $image->format = 'png';
    $image->display();

drawfilledcirclearc
Dessine une partie de cercle plein.
  1. Syntaxe
    drawfilledcirclearc($cx, $cy, $r, $start, $end, $color='')
    
    $cx    : x center
    $cy    : y center
    $r     : rayon
    $start : angle de départ
    $end   : angle d'arrivée
    $color : couleur de remplissage
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 80);
    $image->drawfilledcirclearc('50%', '50%', '25%', -45, 180, 'blue');
    $image->drawfilledcirclearc('17%', '50%', '25%', -60, 90, 'red 50%');
    $image->drawfilledcirclearc('83%', '50%', '25%', 80, 10, 'yellow 20%');
    $image->format = 'png';
    $image->display();

drawfilledellipse
Dessine une ellipse pleine.
  1. Syntaxe
    drawfilledellipse($cx, $cy, $w, $h, $color='')
    
    $cx    : x center
    $cy    : y center
    $w     : largeur
    $h     : hauteur
    $color : couleur de remplissage
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 80);
    $image->drawfilledellipse('50%', '50%', 50, 50, 'blue');
    $image->drawfilledellipse('17%', '50%', '45%', '110%', 'red 50%');
    $image->drawfilledellipse('83%', '50%', '60%', '30%', 'yellow 20%');
    $image->format = 'png';
    $image->display();

drawfilledellipsearc
Dessine une partie d'ellipse pleine.
  1. Syntaxe
    drawfilledellipsearc($cx, $cy, $w, $h, $start, $end, $color='')
    
    $cx    : x center
    $cy    : y center
    $w     : largeur
    $h     : hauteur
    $start : angle de départ
    $end   : angle d'arrivée
    $color : couleur de remplissage
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 80);
    $image->drawfilledellipsearc('50%', '50%', 50, 50, -45, 180, 'blue');
    $image->drawfilledellipsearc('17%', '50%', '45%', '110%', -60, 90, 'red 50%');
    $image->drawfilledellipsearc('83%', '50%', '60%', '30%', 80, 10, 'yellow 20%');
    $image->format = 'png';
    $image->display();

drawfilledpolygon
Dessine un polygone rempli.
  1. Syntaxe
    drawfilledpolygon($values, $fillcolor='')
     
    $values    : tableau de coordonnées
    $fillcolor : couleur de remplissage
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $form1 = array(
    	array(10, 10), array(100, 10), array(50, 50), array(100, 100),
    	array(30, 80), array(20, 50), array(40, 30),
    );
    $form2 = array(
    	array(20, 100), array(95, 40), array(15, 30), array(100, 80)
    );
    $form3 = array(
    	array(20, 105), array(30, 100), array(40, 110), array(50, 100),
    	array(60, 115), array(70, 105), array(80, 120), array(90, 110),
    	array(110, 110), array(110, 60), array(100, 70), array(95, 70), array(85, 60), 
    	array(40, 95), array(90, 105), array(40, 60), array(10, 80),
    );
    $image->drawfilledpolygon($form1, 'blue 30%');
    $image->drawfilledpolygon($form2, 'red 30%');
    $image->drawfilledpolygon($form3, 'green 30%');
    $image->format = 'png';
    $image->display();

drawfilledrectangle
Dessine un rectangle.
Si la couleur de remplissage n'est pas précisée pas précisés, cela reprendra automatiquement la dernière valeur utilisée.
  1. Syntaxe
    drawfilledrectangle($x1, $y1, $x2, $y2, $fillcolor='', $shapestyle='')
     
    $x1         : x point 1
    $y1         : y point 1
    $x2         : x point 2
    $y2         : y point 2
    $fillcolor  : couleur de la ligne
    $shapestyle : style du rectangle (plusieurs valeurs séparées par des espaces)
                  syntaxe des valeurs: '([%int], width[, height])'
                  corner : 'all',
    		               'tl' (top left),
    			    	   'tr' (top right),
    					   'bl' (bottom left),
    					   'br' (bottom right)
    			  shape  : 'biseau', 'biseau2', 'biseau3', 'biseau4',
    			           'round', 'round2',
    			           'curve', 'curve2', 'curve3', 'curve4', 'curve5', 'curve6',
    					   'trait', 'trait2', 'trait3',
    					   'empty', 'none'
    			  int    : espace de hachurage (valeur entière)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->drawfilledrectangle(5, 5, 115, 35, 'red 20%', 'all(round, 10)');
    $image->drawfilledrectangle(20, 25, 100, 55, 'darkgreen 20%', 'all(curve, 10)');
    $image->drawfilledrectangle(35, 45, 85, 75, 'blue 20%', 'all(round2, 10)');
    $shape = 'tl(round, 20) tr(empty, 10, 20) bl(curve, 30, 20) br(biseau, 30)';
    $image->drawfilledrectangle(5, 80, 115, 175, 'blue', $shape);
    $image->drawfilledrectangle(15, 90, 105, 165, 'red', $shape);
    $shape = 'tl(round%3, 20) tr(empty, 10, 20) bl(curve%2, 30, 20) br(biseau%4, 30)';
    $image->drawfilledrectangle(25, 100, 95, 155, 'maroon', $shape);
    $shape = 'all(curve, 20, 10) tr(curve, 10, 20) bl(curve, 10, 20)';
    $image->drawfilledrectangle(45, 110, 75, 140, 'black', $shape);
    $image->format = 'png';
    $image->display();
  3. Styles de forme.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 280);
    $image->drawfilledrectangle(5, 5, 35, 35, 'black', 'all(none, 11)');
    $image->drawfilledrectangle(45, 5, 75, 35, 'blue', 'all(empty, 11)');
    $image->drawfilledrectangle(85, 5, 115, 35, 'red', 'all(biseau, 11)');
    
    $image->drawfilledrectangle(5, 45, 35, 75, 'black', 'all(biseau2, 11)');
    $image->drawfilledrectangle(45, 45, 75, 75, 'blue', 'all(biseau3, 11)');
    $image->drawfilledrectangle(85, 45, 115, 75, 'red', 'all(biseau4, 11)');
    
    $image->drawfilledrectangle(5, 85, 35, 115, 'black', 'all(round, 11)');
    $image->drawfilledrectangle(45, 85, 75, 115, 'blue', 'all(round2, 11)');
    $image->drawfilledrectangle(85, 85, 115, 115, 'red', 'all(curve, 11)');
    
    $image->drawfilledrectangle(5, 125, 35, 155, 'black', 'all(curve2, 11)');
    $image->drawfilledrectangle(45, 125, 75, 155, 'blue', 'all(curve3, 11)');
    $image->drawfilledrectangle(85, 125, 115, 155, 'red', 'all(curve4, 11)');
    
    $image->drawfilledrectangle(5, 165, 35, 195, 'black', 'all(curve5, 11)');
    $image->drawfilledrectangle(45, 165, 75, 195, 'blue', 'all(curve6, 11)');
    $image->drawfilledrectangle(85, 165, 115, 195, 'red', 'all(trait, 11)');
    
    $image->drawfilledrectangle(5, 205, 35, 235, 'black', 'all(trait2, 11)');
    $image->drawfilledrectangle(45, 205, 75, 235, 'blue', 'all(trait3, 11)');
    $image->drawfilledrectangle(85, 205, 115, 235, 'red', 'all(round2+curve, 11)');
    
    $image->drawfilledrectangle(5, 245, 35, 275, 'black', 'all(curve5+curve6, 11)');
    $image->drawfilledrectangle(45, 245, 75, 275, 'blue', 'all(round%2+round2, 11)');
    $image->drawfilledrectangle(85, 245, 115, 275, 'red', 'all(trait2+trait, 11)');
    $image->format = 'png';
    $image->display();

drawfilledrectanglewh
Dessine un rectangle.
Si la couleur de remplissage n'est pas précisée pas précisés, cela reprendra automatiquement la dernière valeur utilisée.
  1. Syntaxe
    drawfilledrectanglewh($x1, $y1, $w, $h, $fillcolor='', $shapestyle='')
     
    $x1         : x point 1
    $y1         : y point 1
    $w          : hauteur
    $h          : largeur
    $fillcolor  : couleur de la ligne
    $shapestyle : style du rectangle (plusieurs valeurs séparées par des espaces)
                  syntaxe des valeurs: '([%int], width[, height])'
                  corner : 'all',
    		               'tl' (top left),
    			    	   'tr' (top right),
    					   'bl' (bottom left),
    					   'br' (bottom right)
    			  shape  : 'biseau', 'biseau2', 'biseau3', 'biseau4',
    			           'round', 'round2',
    			           'curve', 'curve2', 'curve3', 'curve4', 'curve5', 'curve6',
    					   'trait', 'trait2', 'trait3',
    					   'empty', 'none'
    			  int    : espace de hachurage (valeur entière)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->drawfilledrectanglewh(5, 5, 110, 30, 'red 20%', 'all(round, 10)');
    $image->drawfilledrectanglewh(20, 25, 80, 30, 'darkgreen 20%', 'all(curve, 10)');
    $image->drawfilledrectanglewh(35, 45, 50, 30, 'blue 20%', 'all(round2, 10)');
    $shape = 'tl(round, 20) tr(empty, 10, 20) bl(curve, 30, 20) br(biseau, 30)';
    $image->drawfilledrectanglewh(5, 80, 110, 95, 'blue', $shape);
    $image->drawfilledrectanglewh(15, 90, 90, 75, 'red', $shape);
    $shape = 'tl(round%3, 20) tr(empty, 10, 20) bl(curve%2, 30, 20) br(biseau%4, 30)';
    $image->drawfilledrectanglewh(25, 100, 70, 55, 'maroon', $shape);
    $shape = 'all(curve, 20, 10) tr(curve, 10, 20) bl(curve, 10, 20)';
    $image->drawfilledrectanglewh(45, 110, 30, 30, 'black', $shape);
    $image->format = 'png';
    $image->display();
  3. Styles de forme.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 280);
    $image->drawfilledrectanglewh(5, 5, 30, 30, 'black', 'all(none, 11)');
    $image->drawfilledrectanglewh(45, 5, 30, 30, 'blue', 'all(empty, 11)');
    $image->drawfilledrectanglewh(85, 5, 30, 30, 'red', 'all(biseau, 11)');
    
    $image->drawfilledrectanglewh(5, 45, 30, 30, 'black', 'all(biseau2, 11)');
    $image->drawfilledrectanglewh(45, 45, 30, 30, 'blue', 'all(biseau3, 11)');
    $image->drawfilledrectanglewh(85, 45, 30, 30, 'red', 'all(biseau4, 11)');
    
    $image->drawfilledrectanglewh(5, 85, 30, 30, 'black', 'all(round, 11)');
    $image->drawfilledrectanglewh(45, 85, 30, 30, 'blue', 'all(round2, 11)');
    $image->drawfilledrectanglewh(85, 85, 30, 30, 'red', 'all(curve, 11)');
    
    $image->drawfilledrectanglewh(5, 125, 30, 30, 'black', 'all(curve2, 11)');
    $image->drawfilledrectanglewh(45, 125, 30, 30, 'blue', 'all(curve3, 11)');
    $image->drawfilledrectanglewh(85, 125, 30, 30, 'red', 'all(curve4, 11)');
    
    $image->drawfilledrectanglewh(5, 165, 30, 30, 'black', 'all(curve5, 11)');
    $image->drawfilledrectanglewh(45, 165, 30, 30, 'blue', 'all(curve6, 11)');
    $image->drawfilledrectanglewh(85, 165, 30, 30, 'red', 'all(trait, 11)');
    
    $image->drawfilledrectanglewh(5, 205, 30, 30, 'black', 'all(trait2, 11)');
    $image->drawfilledrectanglewh(45, 205, 30, 30, 'blue', 'all(trait3, 11)');
    $image->drawfilledrectanglewh(85, 205, 30, 30, 'red', 'all(round2+curve, 11)');
    
    $image->drawfilledrectanglewh(5, 245, 30, 30, 'black', 'all(curve5+curve6, 11)');
    $image->drawfilledrectanglewh(45, 245, 30, 30, 'blue', 'all(round%2+round2, 11)');
    $image->drawfilledrectanglewh(85, 245, 30, 30, 'red', 'all(trait2+trait, 11)');
    $image->format = 'png';
    $image->display();

drawimage
Dessine une image.
  1. Syntaxe
    drawimage(& $src, $dstx, $dsty, $srcx=0, $srcy=0, $srcw=0, $srch=0, 
              $alpha=-1, $dstpos='', $srcpos='', $shapestyle='', 
    		  $watermark=false, $creux=true)
    
    $src        : image source
    $dstx       : destination - valeur X
    $dsty       : destination - valeur Y
    $srcx       : source - valeur X
    $srcy       : source - valeur Y
    $srcw       : largeur source
    $srch       : hauteur source
    $alpha      : transparence à appliquer
    $dstpos     : position destination (voir la méthode copy pour des exemples)
    $srcpos     : position source (voir la méthode copy pour des exemples)
    $shapestyle : style du rectangle (plusieurs valeurs séparées par des espaces)
                  syntaxe des valeurs: '([%int], width[, height])'
                  corner : 'all',
    		               'tl' (top left),
    			    	   'tr' (top right),
    					   'bl' (bottom left),
    					   'br' (bottom right)
    			  shape  : 'biseau', 'biseau2', 'biseau3', 'biseau4',
    			           'round', 'round2',
    			           'curve', 'curve2', 'curve3', 'curve4', 'curve5', 'curve6',
    					   'trait', 'trait2', 'trait3',
    					   'empty', 'none'
    			  int    : espace de hachurage (valeur entière)
    $watermark  : applique un effet watermark à l'image
    $creux      : l'effet watermark en creux ou relief
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $flowers = new PHPImage('tulipes.jpg');
    $flowers->resizefit(100);
    $image = new PHPImage(120, 180);
    $image->fill(0, 0, 'white');
    $image->drawimage($flowers, 10, 10);
    $image->drawimage($flowers, 5, 90, '25%', '25%', '50%', '50%', '50%');
    $image->drawimage($flowers, 65, 90, '25%', '25%', '50%', '50%', 0, '', '', 'all(biseau, 12)');
    $image->drawimage($flowers, 5, 135, '25%', '25%', '50%', '50%', 0, '', '', 'all(round%2, 12)');
    $image->drawimage($flowers, 65, 135, '25%', '25%', '50%', '50%', '70%', '', '', 'all(curve, 12)', true);
    $flowers->destroy();
    $image->format = 'png';
    $image->display();

drawline
Dessine une ligne.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawline($x1, $y1, $x2, $y2, $linecolor='', $thickness=0, $linestyle='')
     
    $x1        : x point 1
    $y1        : y point 1
    $x2        : x point 2
    $y2        : y point 2
    $linecolor : couleur de la ligne
    $thickness : épaisseur
    $linestyle : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $blue = 'blue 20%';
    $red  = 'red 20%';
    
    $image->drawline(110, 10, 10, 170, 'green 60%', 15, 'double');
    $image->drawline(10, 10, 110, 170, 'green 60%', 15, 'dot');
    
    $image->drawline(10, 10, 50, 80, $blue, 1, 'solid');
    $image->drawline(20, 10, 60, 80, $blue, 1, 'square');
    $image->drawline(30, 10, 70, 80, $blue, 1, 'dot');
    $image->drawline(40, 10, 80, 80, $blue, 1, 'dash');
    $image->drawline(50, 10, 90, 80, $blue, 1, 'bigdash');
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, ''   ,
    	$blue, $blue, ''   , ''   ,
    	$blue, ''   , ''   , ''   ,
    	''   , ''   , ''   , $red ,
    	''   , ''   , $red , $red ,
    	''   , $red , $red , $red ,
    	''   , ''   , $red , $red ,
    	''   , ''   , ''   , $red ,
    	$blue, ''   , ''   , ''   ,
    	$blue, $blue, ''   , ''   ,
    );
    $image->drawline(10, 90, 110, 90, '', 4, $style);
    
    $image->drawline(10, 100, 50, 170, $red, 5, 'solid');
    $image->drawline(20, 100, 60, 170, $red, 5, 'square');
    $image->drawline(30, 100, 70, 170, $red, 5, 'dot');
    $image->drawline(40, 100, 80, 170, $red, 5, 'dash');
    $image->drawline(50, 100, 90, 170, $red, 5, 'bigdash');
    $image->drawline(60, 100, 100, 170, $red, 5, 'double');
    $image->drawline(70, 100, 110, 170, $red, 5, 'triple');
    $image->format = 'png';
    $image->display();

drawlinewh
Dessine une ligne.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawlinewh($x1, $y1, $w, $h, $linecolor='', $thickness=0, $linestyle='')
     
    $x1        : x point 1
    $y1        : y point 1
    $w         : largeur
    $h         : hauteur
    $linecolor : couleur de la ligne
    $thickness : épaisseur
    $linestyle : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $blue = 'blue 20%';
    $red  = 'red 20%';
    
    $image->drawlinewh(110, 10, -100, 160, 'green 60%', 15, 'double');
    $image->drawlinewh(10, 10, 100, 160, 'green 60%', 15, 'dot');
    
    $image->drawlinewh(10, 10, 40, 70, $blue, 1, 'solid');
    $image->drawlinewh(20, 10, 40, 70, $blue, 1, 'square');
    $image->drawlinewh(30, 10, 40, 70, $blue, 1, 'dot');
    $image->drawlinewh(40, 10, 40, 70, $blue, 1, 'dash');
    $image->drawlinewh(50, 10, 40, 70, $blue, 1, 'bigdash');
    
    $style = array(  // '' empty string means no color at all
    
    	$blue, $blue, $blue, ''   ,
    	$blue, $blue, ''   , ''   ,
    	$blue, ''   , ''   , ''   ,
    	''   , ''   , ''   , $red ,
    	''   , ''   , $red , $red ,
    	''   , $red , $red , $red ,
    	''   , ''   , $red , $red ,
    	''   , ''   , ''   , $red ,
    	$blue, ''   , ''   , ''   ,
    	$blue, $blue, ''   , ''   ,
    );
    $image->drawlinewh(10, 90, 100, 0, '', 4, $style);
    
    $image->drawlinewh(10, 100, 40, 70, $red, 5, 'solid');
    $image->drawlinewh(20, 100, 40, 70, $red, 5, 'square');
    $image->drawlinewh(30, 100, 40, 70, $red, 5, 'dot');
    $image->drawlinewh(40, 100, 40, 70, $red, 5, 'dash');
    $image->drawlinewh(50, 100, 40, 70, $red, 5, 'bigdash');
    $image->drawlinewh(60, 100, 40, 70, $red, 5, 'double');
    $image->drawlinewh(70, 100, 40, 70, $red, 5, 'triple');
    $image->format = 'png';
    $image->display();

drawpolygon
Dessine un polygone.
  1. Syntaxe
    drawpolygon($values, $linecolor='', $thickness=0, $linestyle='')
     
    $values    : tableau de coordonnées
    $linecolor : couleur de la ligne
    $thickness : épaisseur
    $linestyle : style de la ligne (solid, dot, square, dash, bigdash, double, triple)
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $form1 = array(
    	array(10, 10), array(100, 10), array(50, 50), array(100, 100),
    	array(30, 80), array(20, 50), array(40, 30),
    );
    $form2 = array(
    	array(20, 100), array(95, 40), array(15, 30), array(100, 80)
    );
    $form3 = array(
    	array(20, 105), array(30, 100), array(40, 110), array(50, 100),
    	array(60, 115), array(70, 105), array(80, 120), array(90, 110),
    	array(110, 110), array(110, 60), array(100, 70), array(95, 70), array(85, 60), 
    	array(40, 95), array(90, 105), array(40, 60), array(10, 80),
    );
    $image->drawpolygon($form1, 'blue', 4, 'dot');
    $image->drawpolygon($form2, 'red', 5, 'triple');
    $image->drawpolygon($form3, 'darkgreen', 1, 'solid');
    $image->format = 'png';
    $image->display();

drawrectangle
Dessine un rectangle.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawrectangle($x1, $y1, $x2, $y2, $linecolor='', $thickness=0, $linestyle='', $shapestyle='')
     
    $x1         : x point 1
    $y1         : y point 1
    $x2         : x point 2
    $y2         : y point 2
    $linecolor  : couleur de la ligne
    $thickness  : épaisseur
    $linestyle  : style de la ligne
    $shapestyle : style du rectangle (plusieurs valeurs séparées par des espaces)
                  syntaxe des valeurs: '(, width[, height])'
                  corner : 'all',
    		               'tl' (top left),
    			    	   'tr' (top right),
    					   'bl' (bottom left),
    					   'br' (bottom right)
    			  shape  : 'biseau', 'biseau2', 'biseau3', 'biseau4',
    			           'round', 'round2',
    			           'curve', 'curve2', 'curve3', 'curve4', 'curve5', 'curve6',
    					   'trait', 'trait2', 'trait3',
    					   'empty', 'none'
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->drawrectangle(5, 5, 115, 35, 'red 20%', 4, 'solid', 'all(round, 6)');
    $image->drawrectangle(17, 17, 103, 47, 'blue 20%', 4, 'dot');
    $image->drawrectangle(29, 29, 91, 59, 'darkgreen 20%', 4, 'double', 'all(curve, 6)');
    $image->drawrectangle(41, 41, 79, 71, 'maroon 20%', 4, 'square');
    $shape = 'tl(round, 20) tr(empty, 10, 20) bl(curve, 30, 20) br(biseau, 30)';
    $image->drawrectangle(5, 80, 115, 175, 'blue', 1, 'solid', $shape);
    $image->drawrectangle(15, 90, 105, 165, 'red', 2, 'dot', $shape);
    $image->drawrectangle(25, 100, 95, 155, 'maroon', 3, 'double', $shape);
    $shape = 'all(curve+round, 20, 10) tr(curve+round, 10, 20) bl(curve+round, 10, 20)';
    $image->drawrectangle(45, 110, 75, 140, 'black', 1, 'solid', $shape);
    $image->format = 'png';
    $image->display();
  3. Styles de ligne.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->drawrectangle(5, 5, 115, 175, 'black', 3, 'solid');
    $image->drawrectangle(12, 12, 108, 168, 'blue', 3, 'dot');
    $image->drawrectangle(19, 19, 101, 161, 'red', 3, 'square');
    $image->drawrectangle(26, 26, 93, 153, 'darkgreen', 3, 'dash');
    $image->drawrectangle(33, 33, 87, 147, 'orange', 3, 'bigdash');
    $image->drawrectangle(40, 40, 80, 140, 'blue', 3, 'double');
    $image->drawrectangle(50, 50, 70, 130, 'red', 5, 'triple');
    $image->format = 'png';
    $image->display();
  4. Styles de forme.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 280);
    $image->drawrectangle(5, 5, 35, 35, 'black', 1, 'solid', 'all(none, 11)');
    $image->drawrectangle(45, 5, 75, 35, 'blue', 1, 'solid', 'all(empty, 11)');
    $image->drawrectangle(85, 5, 115, 35, 'red', 1, 'solid', 'all(biseau, 11)');
    
    $image->drawrectangle(5, 45, 35, 75, 'black', 1, 'solid', 'all(biseau2, 11)');
    $image->drawrectangle(45, 45, 75, 75, 'blue', 1, 'solid', 'all(biseau3, 11)');
    $image->drawrectangle(85, 45, 115, 75, 'red', 1, 'solid', 'all(biseau4, 11)');
    
    $image->drawrectangle(5, 85, 35, 115, 'black', 1, 'solid', 'all(round, 11)');
    $image->drawrectangle(45, 85, 75, 115, 'blue', 1, 'solid', 'all(round2, 11)');
    $image->drawrectangle(85, 85, 115, 115, 'red', 1, 'solid', 'all(curve, 11)');
    
    $image->drawrectangle(5, 125, 35, 155, 'black', 1, 'solid', 'all(curve2, 11)');
    $image->drawrectangle(45, 125, 75, 155, 'blue', 1, 'solid', 'all(curve3, 11)');
    $image->drawrectangle(85, 125, 115, 155, 'red', 1, 'solid', 'all(curve4, 11)');
    
    $image->drawrectangle(5, 165, 35, 195, 'black', 1, 'solid', 'all(curve5, 11)');
    $image->drawrectangle(45, 165, 75, 195, 'blue', 1, 'solid', 'all(curve6, 11)');
    $image->drawrectangle(85, 165, 115, 195, 'red', 1, 'solid', 'all(trait, 11)');
    
    $image->drawrectangle(5, 205, 35, 235, 'black', 1, 'solid', 'all(trait2, 11)');
    $image->drawrectangle(45, 205, 75, 235, 'blue', 1, 'solid', 'all(trait3, 11)');
    $image->drawrectangle(85, 205, 115, 235, 'red', 1, 'solid', 'all(round+curve, 11)');
    
    $image->drawrectangle(5, 245, 35, 275, 'black', 1, 'solid', 'all(curve4+curve5, 11)');
    $image->drawrectangle(45, 245, 75, 275, 'blue', 1, 'solid', 'all(biseau+empty, 11)');
    $image->drawrectangle(85, 245, 115, 275, 'red', 1, 'solid', 'all(trait2+trait, 11)');
    $image->format = 'png';
    $image->display();

drawrectanglewh
Dessine un rectangle.
Si la couleur, l'épaisseur ou le style ne sont pas précisés, cela reprendra automatiquement les dernières valeurs utilisées pour dessiner des lignes.
  1. Syntaxe
    drawrectanglewh($x1, $y1, $w, $h, $linecolor='', $thickness=0, $linestyle='', $shapestyle='')
     
    $x1         : x point 1
    $y1         : y point 1
    $w          : largeur
    $h          : hauteur
    $linecolor  : couleur de la ligne
    $thickness  : épaisseur
    $linestyle  : style de la ligne
    $shapestyle : style du rectangle (plusieurs valeurs séparées par des espaces)
                  syntaxe des valeurs: '(, width[, height])'
                  corner : 'all',
    		               'tl' (top left),
    			    	   'tr' (top right),
    					   'bl' (bottom left),
    					   'br' (bottom right)
    			  shape  : 'biseau', 'biseau2', 'biseau3', 'biseau4',
    			           'round', 'round2',
    			           'curve', 'curve2', 'curve3', 'curve4', 'curve5', 'curve6',
    					   'trait', 'trait2', 'trait3',
    					   'empty', 'none'
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    
    $image->drawrectanglewh(5, 5, 110, 30, 'red 20%', 4, 'solid', 'all(round, 6)');
    $image->drawrectanglewh(17, 17, 86, 30, 'blue 20%', 4, 'dot');
    $image->drawrectanglewh(29, 29, 62, 30, 'darkgreen 20%', 4, 'double', 'all(curve, 6)');
    $image->drawrectanglewh(41, 41, 38, 30, 'maroon 20%', 4, 'square');
    $shape = 'tl(round, 20) tr(empty, 10, 20) bl(curve, 30, 20) br(biseau, 30)';
    $image->drawrectanglewh(5, 80, 110, 95, 'blue', 1, 'solid', $shape);
    $image->drawrectanglewh(15, 90, 90, 75, 'red', 2, 'dot', $shape);
    $image->drawrectanglewh(25, 100, 70, 55, 'maroon', 3, 'double', $shape);
    $shape = 'all(curve+round, 20, 10) tr(curve+round, 10, 20) bl(curve+round, 10, 20)';
    $image->drawrectanglewh(45, 110, 30, 30, 'black', 1, 'solid', $shape);
    
    $image->format = 'png';
    $image->display();
  3. Styles de ligne.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->drawrectanglewh(5, 5, 110, 170, 'black', 3, 'solid');
    $image->drawrectanglewh(12, 12, 96, 156, 'blue', 3, 'dot');
    $image->drawrectanglewh(19, 19, 82, 142, 'red', 3, 'square');
    $image->drawrectanglewh(26, 26, 68, 128, 'darkgreen', 3, 'dash');
    $image->drawrectanglewh(33, 33, 54, 114, 'orange', 3, 'bigdash');
    $image->drawrectanglewh(40, 40, 40, 100, 'blue', 3, 'double');
    $image->drawrectanglewh(50, 50, 20, 80, 'red', 5, 'triple');
    $image->format = 'png';
    $image->display();
  4. Styles de forme.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 280);
    $image->drawrectanglewh(5, 5, 30, 30, 'black', 1, 'solid', 'all(none, 11)');
    $image->drawrectanglewh(45, 5, 30, 30, 'blue', 1, 'solid', 'all(empty, 11)');
    $image->drawrectanglewh(85, 5, 30, 30, 'red', 1, 'solid', 'all(biseau, 11)');
    
    $image->drawrectanglewh(5, 45, 30, 30, 'black', 1, 'solid', 'all(biseau2, 11)');
    $image->drawrectanglewh(45, 45, 30, 30, 'blue', 1, 'solid', 'all(biseau3, 11)');
    $image->drawrectanglewh(85, 45, 30, 30, 'red', 1, 'solid', 'all(biseau4, 11)');
    
    $image->drawrectanglewh(5, 85, 30, 30, 'black', 1, 'solid', 'all(round, 11)');
    $image->drawrectanglewh(45, 85, 30, 30, 'blue', 1, 'solid', 'all(round2, 11)');
    $image->drawrectanglewh(85, 85, 30, 30, 'red', 1, 'solid', 'all(curve, 11)');
    
    $image->drawrectanglewh(5, 125, 30, 30, 'black', 1, 'solid', 'all(curve2, 11)');
    $image->drawrectanglewh(45, 125, 30, 30, 'blue', 1, 'solid', 'all(curve3, 11)');
    $image->drawrectanglewh(85, 125, 30, 30, 'red', 1, 'solid', 'all(curve4, 11)');
    
    $image->drawrectanglewh(5, 165, 30, 30, 'black', 1, 'solid', 'all(curve5, 11)');
    $image->drawrectanglewh(45, 165, 30, 30, 'blue', 1, 'solid', 'all(curve6, 11)');
    $image->drawrectanglewh(85, 165, 30, 30, 'red', 1, 'solid', 'all(trait, 11)');
    
    $image->drawrectanglewh(5, 205, 30, 30, 'black', 1, 'solid', 'all(trait2, 11)');
    $image->drawrectanglewh(45, 205, 30, 30, 'blue', 1, 'solid', 'all(trait3, 11)');
    $image->drawrectanglewh(85, 205, 30, 30, 'red', 1, 'solid', 'all(round+curve, 11)');
    
    $image->drawrectanglewh(5, 245, 30, 30, 'black', 1, 'solid', 'all(curve4+curve5, 11)');
    $image->drawrectanglewh(45, 245, 30, 30, 'blue', 1, 'solid', 'all(biseau+empty, 11)');
    $image->drawrectanglewh(85, 245, 30, 30, 'red', 1, 'solid', 'all(trait2+trait, 11)');
    $image->format = 'png';
    $image->display();

effect
Applique un effet à l'image.
  1. Détection de bords.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('edgedetect');
    $image->format = 'png';
    $image->display();
  2. Relief.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('emboss');
    $image->format = 'png';
    $image->display();
  3. Inversion des couleurs.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('invert');
    $image->format = 'png';
    $image->display();
  4. Niveaux de gris.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('grayscale');
    $image->format = 'png';
    $image->display();
  5. Flou.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('blur', [number]);
    
    // number = 1 (default), 2 or 3
    
    $image->effect('blur');
    $image->format = 'png';
    $image->display();
  6. Flou sélectif.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('selective_blur', [number]);
    
    // number = 1 (default), 2 or 3
    
    $image->effect('selective_blur');
    $image->format = 'png';
    $image->display();
  7. Aiguise.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('sharpen', [number]);
    
    // number = 1 (default), 2 or 3
    
    $image->effect('sharpen');
    $image->format = 'png';
    $image->display();
  8. Luminosité.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('brightness', [value]);
    
    // value default = 10
    
    $image->effect('brightness', 50);
    $image->format = 'png';
    $image->display();
  9. Contraste.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('contrast', [value]);
    
    // value default = 10
    
    $image->effect('contrast', 50);
    $image->format = 'png';
    $image->display();
  10. Adoucir.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('smooth', [value]);
    
    // value default = 1
    
    $image->effect('smooth');
    $image->format = 'png';
    $image->display();
  11. Coloriser.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('colorize', [Red], [Green], [Blue]);
    
    // RGB default = 0
    
    $image->effect('colorize', 180, 180, 0); // yellow
    
    $image->format = 'png';
    $image->display();
  12. Gravure.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('watermark', [invert], [blur]);
    
    // invert default = false
    
    // blur default = false
    
    $image->effect('watermark');
    $image->format = 'png';
    $image->display();
  13. Noir et blanc avec des points.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('points', [threshold]);
    
    // threshold default = 127
    
    $image->effect('points');
    $image->format = 'png';
    $image->display();
  14. Sépia.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('sepia'); 
    $image->format = 'png';
    $image->display();
  15. Mosaique.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('mosaic', [size_x], [size_y]);
    
    // size_x default = 2
    
    // size_y default = 2
    
    $image->effect('mosaic', 4);
    $image->format = 'png';
    $image->display();
  16. Retournement vertical.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('flipv');
    $image->format = 'png';
    $image->display();
  17. Retournement horizontal.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->effect('fliph');
    $image->format = 'png';
    $image->display();
  18. Noir et blanc avec seuil.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    // syntax : $image->effect('threshold', [threshold]);
    
    // threshold default = 127
    
    $image->effect('threshold');
    $image->format = 'png';
    $image->display();

fill
Colorie à partir d'un point.
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$image->fill(27, 23, 'red 50%');
$image->fill(60, 23, 'green 50%');
$image->fill(82, 23, 'blue 50%');
$image->format = 'png';
$image->display();

getclone
Récupère un clone de l'image voulue (copie de l'objet image).
$newimage = $image->getclone();

gettextbox
Retourne les dimensions du texte à dessiner sous forme de tableau à deux éléments.
  1. Syntaxe
    gettextbox($text, $fontsize=0, $angle=0, $linespacing='', $font='')
    
    $text        : texte (retours à la ligne autorisés)
    $fontsize    : taille de police
    $angle       : angle
    $linespacing : interligne
    $font        : police de caractère
    
  2. Exemple.
    $image = new PHPImage(200, 100);
    
    list($width, $height) = $image->gettextbox("Hello\nWorld", 12, 0, '', 'arial.ttf');
    
    // ... or ...
    
    
    $dims = $image->gettextbox("Hello\nWorld", 12, 0, '', 'arial.ttf');
    $width = $dims[0];
    $height = $dims[1];
    

gettextposition
Récupère la position haut gauche (x, y) où dessiner le texte.
Cette méthode est surtout utile si vous utilisez un angle différent de 0 et avec des positions différentes de 'top left'.
  1. Syntaxe
    gettextposition($cx, $cy, $text, $fontsize=12, $angle=0, 
            $position='top left', $linespacing='', $font='')
    
    $cx          : position X
    $cy          : position Y
    $text        : texte (retours à la ligne autorisés)
    $fontsize    : taille du texte
    $angle       : angle du texte
    $position    : position des coordonnées d'ancrage du texte
    $linespacing : interligne
    $font        : police de caractère
    
  2. Exemple.
    $image = new PHPImage(200, 100);
    
    list($x, $y) = $image->gettextposition(100, 50, "Hello\nWorld", 12, 60, 'bottom center', '', 'arial.ttf');
    
    // ... or ...
    
    
    $dims = $image->gettextposition(100, 50, "Hello\nWorld", 12, 60, 'bottom center', '', 'arial.ttf');
    $x = $dims[0];
    $y = $dims[1];
    

loadfromfile
Charge dans l'image courante un fichier.
$image = new PHPImage();
$image->loadfromfile('php.gif');

// est équivalent à


$image = new PHPImage('php.gif');

mask
Applique un masque de noir et blanc à l'image.
Le blanc est transparent, le noir opaque.
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$mask = new PHPImage('mask.png');
$image->mask($mask);
$mask->destroy();
$image->format = 'png';
$image->display();

maskalpha
Applique un masque avec des composantes alpha.
Le niveau de transparence du masque est reproduit sur l'image
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$mask = new PHPImage('maskalpha.png');
$image->maskalpha($mask);
$mask->destroy();
$image->format = 'png';
$image->display();

realcopy
C'est une fonction de copie qui fusionne corectement les valeurs alpha des couleurs.
En effet, avec des transparences élevées, la simple copie ne rend pas les couleurs vraies.
Attention, cette méthode est consommatrice de CPU, donc éviter les grosse images, ou alors gérez un cache.
Dans tous les cas, si vous n'usez pas de transparence, n'utilisez pas la copie réelle !
Utilisez la propriété realcopy pour que les copies (copy, copyresize...) utilisent cette méthode.
  1. Syntaxe
    realcopy(& $src, $dstx=0, $dsty=0, $srcx=0, $srcy=0, 
         $srcw=0, $srch=0, $alpha=-1, $dstpos='', $srcpos='')
    
    $src    : image source
    $dstx   : destination - valeur X
    $dsty   : destination - valeur Y
    $srcx   : source - valeur X
    $srcy   : source - valeur Y
    $srcw   : largeur source
    $srch   : hauteur source
    $alpha  : transparence à appliquer
    $dstpos : position destination
    $srcpos : position source
    
  2. Copie réelle avec un fond jaune transparent.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $php = new PHPImage('php.gif');
    $image = new PHPImage();
    $image->bgcolor = 'yellow 80%';
    $image->create($php->width, $php->height);
    $image->realcopy($php, 0,0, 0,0, 0,0, '70%');
    $php->destroy();
    $image->format = 'png';
    $image->display();
  3. Copie GD avec un fond jaune transparent.
    Observez la différence... les couleurs ne sont pas correctement fusionnées !
    require(__DIR__.'/../../src/class.PHPImage.php');
    $php = new PHPImage('php.gif');
    $image = new PHPImage();
    $image->bgcolor = 'yellow 80%';
    $image->create($php->width, $php->height);
    $image->copy($php, 0,0, 0,0, 0,0, '70%');
    $php->destroy();
    $image->format = 'png';
    $image->display();

replacecolor
Remplace une couleur de l'image par une autre (ne tient pas compte de la transparence).
  1. Syntaxe
    replacecolor($srccolor, $dstcolor, $keeptransparency=true)
    
    $srccolor : couleur source
    $dstcolor : couleur destination
    $keeptransparency : si la transparence originale est gardée
    
  2. On garde la transparence originale.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->replacecolor('white' , 'red');
    $image->format = 'png';
    $image->display();
  3. On ne garde pas la transparence originale.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->replacecolor('white' , 'red', false);
    $image->format = 'png';
    $image->display();

replacecoloralpha
Remplace une couleur de l'image par une autre (tient compte de la transparence).
  1. Syntaxe
    replacecoloralpha($srccolor, $dstcolor, $keeptransparency=false)
    
    $srccolor : couleur source
    $dstcolor : couleur destination
    $keeptransparency : si la transparence originale est gardée
    
  2. On garde la transparence originale.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->replacecoloralpha('white 100%' , 'red 50%', true);
    $image->format = 'png';
    $image->display();
  3. On ne garde pas la transparence originale.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->replacecoloralpha('white 100%' , 'red 50%');
    $image->format = 'png';
    $image->display();

resample
Redimensionne l'image proprement.
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$image->resample(75, 75);
$image->format = 'png';
$image->display();

resamplefit
Redimensionne l'image proprement (garde les proportions largeur/hauteur).
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$image->resamplefit(75, 75);
$image->format = 'png';
$image->display();

resize
Redimensionne l'image proprement (plus rapide que resample mais moins bonne qualité).
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$image->resize(75, 75);
$image->format = 'png';
$image->display();

resizefit
Redimensionne l'image proprement en gardand les proportions largeur/hauteur (plus rapide que resamplefit mais moins bonne qualité).
require(__DIR__.'/../../src/class.PHPImage.php');
$image = new PHPImage('php.gif');
$image->resizefit(75, 75);
$image->format = 'png';
$image->display();

rotate
Tourne l'image.
  1. Syntaxe
    rotate($angle, $enlarge=true)
    
    $angle   : angle
    $enlarge : agrandit l'image ou garde les dimensions
    
  2. Rotation simple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->resample('50%');
    $image->rotate(30);
    $image->format = 'png';
    $image->display();
  3. Rotation en gardant la taille originale.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->resample('50%');
    $image->rotate(30, false);
    $image->format = 'png';
    $image->display();

savetofile
Sauvegarde l'image dans un fichier.
$image->savetofile('hello.jpg', $quality); // quality between 0 and 100
// or
$image->savetofile('hello.png');
// or
$image->savetofile('hello.gif');

setalpha
Définit la transparence pour toute l'image
  1. Syntaxe
    setalpha($alpha, $forcetransparentpixels=false)
    
    $angle : transparency
    $forcetransparentpixels : affecte les pixels transparents ou pas
    
  2. Setalpha 50%.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->setalpha('50%');
    $image->format = 'png';
    $image->display();
  3. Setalpha 50% avec les pixels transprents.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage('php.gif');
    $image->setalpha('50%', true);
    $image->format = 'png';
    $image->display();

setbackgroundimage
Dessine une image en fond.
  1. Syntaxe
    setbackgroundimage(& $src, $alpha=-1)
    
    $src        : image source
    $alpha      : transparence à appliquer
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $flowers = new PHPImage('tulipes.jpg');
    $image = new PHPImage(120, 180);
    // if you use a hight transparency and on not too big images
    
    // don't forget to set realcopy to true to have a correct transparency
    
    $image->realcopy = true;
    $image->setbackgroundimage($flowers, '70%');
    $flowers->destroy();
    $image->format = 'png';
    $image->display();

setpixel
Définit une couleur pour un pixel donné
$image->setpixel($x, $y, $color);

setresource
Cette méthode permet de charger une image dans un objet PHPImage.
$im = imagecreatetruecolor(200, 100);
$image = new PHPImage();
$image->setresource($im);
// ...

writetext
Dessine du texte.
  1. Syntaxe
    writetext($cx, $cy, $text, $fontsize=0, $angle=0, 
             $color='black', $style='left', $position='top left', 
    		 $linespacing='', $font='');
    
    $cx          : position X
    $cy          : position Y
    $text        : texte (retours à la ligne autorisés)
    $fontsize    : taille du texte
    $angle       : angle du texte
    $color       : couleur du texte
    $style       : style de texte (ombré, souligné etc ...)
    $position    : position des coordonnées d'ancrage du texte
    $linespacing : interligne
    $font        : police de caractère ou n° de police (1 à 5)
    
  2. Simple texte sans police TTF.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    // font size has no effect when no TTF font is set (here 12)
    
    $image->writetext(5, 5, "hello World !", 12, 0, 'black', '', '', '', 1);
    $image->writetext(5, 26, "hello World !", 12, 0, 'red', '', '', '', 2);
    $image->writetext(5, 49, "hello World !", 12, 0, 'blue', '', '', '', 3);
    $image->writetext(5, 72, "hello World !", 12, 0, 'darkgreen', '', '', '', 4);
    $image->writetext(5, 100, "hello World !", 12, 0, 'maroon', '', '', '', 5);
    $image->format = 'png';
    $image->display();
  3. Simple texte avec police TTF.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle('50%', '50%', 3, 'blue 50%');
    $image->writetext('50%', '50%', "hello\nWorld !"); 
    $image->format = 'png';
    $image->display();
  4. Pareil que précédemment mais avec angle de 30° et couleur rouge.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle('50%', '50%', 3, 'blue 50%');
    $image->writetext('50%', '50%', "hello\nWorld !", 12, 30, 'red'); 
    $image->format = 'png';
    $image->display();
  5. Style / Alignement.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 180);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle(10, 10, 3, 'blue 50%');
    $image->drawfilledcircle(10, 65, 3, 'blue 50%');
    $image->drawfilledcircle(10, 120, 3, 'blue 50%');
    $image->writetext(10, 10, "hello\nWorld !", 12, 0, 'black', 'left'); // left
    
    $image->writetext(10, 65, "hello\nWorld !", 12, 0, 'black', 'center'); // center
    
    $image->writetext(10, 120, "hello\nWorld !", 12, 0, 'black', 'right'); // right
    
    $image->format = 'png';
    $image->display();
  6. Style / Souligné.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 190);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle(10, 10, 3, 'blue 50%');
    $image->drawfilledcircle(10, 45, 3, 'blue 50%');
    $image->drawfilledcircle(10, 80, 3, 'blue 50%');
    $image->drawfilledcircle(10, 115, 3, 'blue 50%');
    $image->drawfilledcircle(10, 150, 3, 'blue 50%');
    $text = "hello\nWorld !";
    $image->writetext(10, 10, $text, 12, 0, 'black', 'underline'); // simple
    
    $image->writetext(10, 45, $text, 12, 0, 'black', 'underline(red, 20%)'); // red 50%
    
    $image->writetext(10, 80, $text, 12, 0, 'black', 'underline(3px)'); // thickness
    
    $image->writetext(10, 115, $text, 12, 0, 'black', 'underline(blue, 3px, dot)'); // dot line
    
    $image->writetext(10, 150, $text, 12, 0, 'black', 'underline(darkgreen, 3px, double)'); // double line
    
    $image->format = 'png';
    $image->display();
  7. Style / Ombre.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 190);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->fill(0, 0, 'white');
    $image->drawfilledcircle(10, 10, 3, 'blue 50%');
    $image->drawfilledcircle(10, 45, 3, 'blue 50%');
    $image->drawfilledcircle(10, 80, 3, 'blue 50%');
    $image->drawfilledcircle(10, 115, 3, 'blue 50%');
    $image->drawfilledcircle(10, 150, 3, 'blue 50%');
    $text = "hello\nWorld !";
    $image->writetext(10, 10, $text, 12, 0, 'black', 'shadow'); // simple
    
    $image->writetext(10, 45, $text, 12, 0, 'black', 'shadow(red)'); // red
    
    $image->writetext(10, 80, $text, 12, 0, 'black', 'shadow(blue, 20%, noblur)'); // blue 20% no blur
    
    $image->writetext(10, 115, $text, 12, 0, 'black', 'shadow(orange, 1x, 1y, noblur)'); // set offset
    
    $image->writetext(10, 150, $text, 12, 0, 'black', 'shadow(orange, 2x, 5y, noblur)'); // set offset
    
    $image->format = 'png';
    $image->display();
  8. Style / Varié.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 190);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->fill(0, 0, 'white');
    $image->drawfilledcircle('50%', '20%', 3, 'blue 50%');
    $image->drawfilledcircle('50%', '50%', 3, 'blue 50%');
    $image->drawfilledcircle('50%', '80%', 3, 'blue 50%');
    $text = "hello\nWorld !";
    $image->writetext('50%', '20%', $text, 12, 30, 'black', 'left underline shadow'); // simple
    
    $image->writetext('50%', '50%', $text, 12, 180, 'black', 'right underline(green) shadow(red, -2x, -2y)');
    $image->writetext('50%', '80%', $text, 12, 60, 'black', 'underline(dot) shadow(red)', '', 6); 
    $image->format = 'png';
    $image->display();
  9. Positionnement du texte.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(190, 190);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle('10%', '20%', 3, 'blue 50%');
    $image->drawfilledcircle('50%', '20%', 3, 'blue 50%');
    $image->drawfilledcircle('90%', '20%', 3, 'blue 50%');
    $image->drawfilledcircle('10%', '50%', 3, 'blue 50%');
    $image->drawfilledcircle('50%', '50%', 3, 'blue 50%');
    $image->drawfilledcircle('90%', '50%', 3, 'blue 50%');
    $image->drawfilledcircle('10%', '80%', 3, 'blue 50%');
    $image->drawfilledcircle('50%', '80%', 3, 'blue 50%');
    $image->drawfilledcircle('90%', '80%', 3, 'blue 50%');
    $text = "hello\nWorld !";
    $image->writetext('10%', '20%', $text, 10, 0, 'black', '', 'top left');
    $image->writetext('50%', '20%', $text, 10, 0, 'black', '', 'top center');
    $image->writetext('90%', '20%', $text, 10, 0, 'black', '', 'top right');
    $image->writetext('10%', '50%', $text, 10, 0, 'black', '', 'center left');
    $image->writetext('50%', '50%', $text, 10, 0, 'black', '', 'center');
    $image->writetext('90%', '50%', $text, 10, 0, 'black', '', 'center right');
    $image->writetext('10%', '80%', $text, 10, 0, 'black', '', 'bottom left');
    $image->writetext('50%', '80%', $text, 10, 0, 'black', '', 'bottom center');
    $image->writetext('90%', '80%', $text, 10, 0, 'black', '', 'bottom right');
    $image->format = 'png';
    $image->display();
  10. Positionnement facile du texte
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->writetext('50%', '50%', "center\ntext", 10, 0, 'black', 'center', 'center center');
    $image->writetext('1%', '1%', "top\nleft", 10, 0, 'black', 'left', 'top left');
    $image->writetext('99%', '1%', "top\nright", 10, 0, 'black', 'right', 'top right');
    $image->writetext('99%', '99%', "bottom\nright", 10, 0, 'black', 'right', 'bottom right');
    $image->writetext('1%', '99%', "bottom\nleft", 10, 0, 'black', 'left', 'bottom left');
    $image->format = 'png';
    $image->display();
  11. Interligne
    require(__DIR__.'/../../src/class.PHPImage.php');
    $image = new PHPImage(120, 120);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->drawfilledcircle(10, 10, 3, 'blue 50%');
    $image->drawfilledcircle(10, 70, 3, 'blue 50%');
    $image->writetext(10, 10, "hello\nWorld !", 12, 0, 'black', '', '', -5);
    $image->writetext(10, 70, "hello\nWorld !", 12, 0, 'black', '', '', 10);
    $image->format = 'png';
    $image->display();

writetextwatermark
Dessine du texte en mode filigrane.
  1. Syntaxe
    writetextwatermark($cx, $cy, $text, $fontsize=0, $angle=0, 
             $creux=true, $style='left', $position='top left', 
    		 $linespacing='', $font='', $alpha=70);
    
    $cx          : position X
    $cy          : position Y
    $text        : texte (retours à la ligne autorisés)
    $fontsize    : taille du texte
    $angle       : angle du texte
    $creux       : texte en relief ou en creux
    $style       : style de texte (ombré, souligné etc ...)
    $position    : position des coordonnées d'ancrage du texte
    $linespacing : interligne
    $font        : police de caractère ou n° de police (1 à 5)
    $alpha       : transparence
    
  2. Exemple.
    require(__DIR__.'/../../src/class.PHPImage.php');
    $flowers = new PHPImage('tulipes.jpg');
    $image = new PHPImage(120, 120);
    $image->fontfile = __DIR__.'/verdana.ttf';
    $image->setbackgroundimage($flowers);
    $image->writetextwatermark('0%', '100%', "arnapou.net", 10, 0, false, '', 'bottom left');
    $image->writetextwatermark('100%', '100%', "arnapou.net", 10, 90, false, '', 'bottom left');
    $image->writetextwatermark('100%', '0%', "arnapou.net", 10, 180, false, '', 'bottom left');
    $image->writetextwatermark('0%', '0%', "arnapou.net", 10, -90, false, '', 'bottom left');
    $image->writetextwatermark('50%', '50%', "arnapou.net", 10, 0, true, 'center', 'center');
    $image->format = 'png';
    $image->display();