## Class Driver

La classe abstraite Driver rassemble toutes les méthodes permettant de dessiner sur une Image. Cette classe ne contient aucune implémentation. Celle-ci doit être effectué à l'intérieur de chaque pilote dérivant de Driver.

Sur une image, l'axe des abscisses rejoint l'axe des ordonnées sur le coin haut-gauche. Le coin haut-gauche de l'image a donc pour coordonnées (0, 0) et le coin bas-droite (largeur, hauteur). Par exemple, sur une image de largeur 100 et de hauteur 50, un point à 50 sur l'axe des abscisses et 25 sur l'axe des ordonnées sera au centre de l'image.

Les classes suivantes dérivent de Driver :

- GDDriver

- Retourner voir la liste de toutes les classes

## Méthodes et propriétés

- public int $imageWidth
- public int $imageHeight
- protected bool $antiAliasing := FALSE
- protected string $driverString
- protected PHPFontDriver $phpFontDriver
- protected FileFontDriver $fileFontDriver

- public __construct()
- public init(Image $image)
- public initFromFile(FileImage $fileImage, string $file)
- public setImageSize(int $width, int $height)
- public setPosition(float $x, float $y)
- public movePosition(int $x, int $y)
- public setAbsPosition(int $x, int $y)
- public setSize(float $w, float $h)
- public setAbsSize(int $w, int $h)
- public array getSize()
- public mixed getColor(Color $color)
- public send(Image $image)
- public get(Image $image)
- public setAntiAliasing(bool $bool)
- public copyImage(Image $image, Point $p1, Point $p2)
- public copyResizeImage(Image $image, Point $d1, Point $d2, Point $s1, Point $s2, bool $resampled)
- public string(Text $text, Point $point, int $width := NULL)
- public point(Color $color, Point $point)
- public line(Color $color, Line $line)
- public arc(Color $color, Point $center, int $width, int $height, float $from, float $to)
- public filledArc(mixed $background, Point $center, int $width, int $height, float $from, float $to)
- public ellipse(Color $color, Point $center, int $width, int $height)
- public filledEllipse(mixed $background, Point $center, int $width, int $height)
- public rectangle(Color $color, Line $line)
- public filledRectangle(mixed $background, Line $line)
- public polygon(Color $color, Polygon $polygon)
- public filledPolygon(mixed $background, Polygon $polygon)
- public float getTextWidth(Text $text)
- public float getTextHeight(Text $text)
- protected bool isCompatibleWithFont(Font $font)

## Documentation

- public int $imageWidth
  La largeur de l'image gérée par le pilote.
  Remonter
- public int $imageHeight
  La hauteur de l'image gérée par le pilote.
  Remonter
- protected bool $antiAliasing := FALSE
  Doit-on utiliser l'anti-aliasing sur ce dessin ?
  Remonter
- protected string $driverString
  Représente le type du pilote sous forme de chaîne.
  Remonter
- protected PHPFontDriver $phpFontDriver
  Un objet PHPFontDriver gérant l'affichage et les calculs sur les polices de type PHPFont.
  Remonter
- protected FileFontDriver $fileFontDriver
  Un objet FileFontDriver gérant l'affichage et les calculs sur les polices de type FileFont.
  Remonter
- public __construct()
  Construit le pilote. Instancie les FontDriver et initialise la propriété driverString.
  Remonter
- public init(Image $image)
  - Disponible depuis Artichow 1.1
  Initialise le pilote pour l'Image $image.
  Remonter
- public initFromFile(FileImage $fileImage, string $file)
  - Disponible depuis Artichow 1.1
  Initialise le pilote à partir d'une FileImage $fileImage. Le chemin d'accès au fichier proprement dit est contenu dans $file.
  Remonter
- public setImageSize(int $width, int $height)
  Change la taille de l'image gérée par le pilote pour la largeur $width et la hauteur $height.
  Remonter
- public setPosition(float $x, float $y)
  Informe le pilote de la position de la sous-image sur l'image. Les positions X et Y sont données via les paramètres $x et $y, qui représentent une fraction de la taille de l'image.
  Remonter
- public movePosition(int $x, int $y)
  Demande au pilote de déplacer la position de la sous-image sur l'image. $x et $y représentent respectivement les déplacements latéral et vertical de la position en pixels.
  Remonter
- public setAbsPosition(int $x, int $y)
  Informe le pilote de la position de la sous-image sur l'image. Les positions X et Y sont données via les paramètres $x et $y, dont l'unité est le pixel.
  Remonter
- public setSize(float $w, float $h)
  Informe le pilote de la taille de la sous-image sur l'image. Les largeur et hauteur de la sous-image sont données via les paramètres $w et $h, qui représentent une fraction de la taille de l'image.
  Remonter
- public setAbsSize(int $w, int $h)
  Informe le pilote de la taille de la sous-image sur l'image. Les largeur et hauteur de la sous-image sont données via les paramètres $w et $h, dont l'unité est le pixel.
  Remonter
- public array getSize()
  Retourne la taille de la sous-image en pixels. Les valeurs sont retournées sous la forme d'un tableau, de la forme array(largeur, hauteur).
  Remonter
- public mixed getColor(Color $color)
  Convertit un objet Color pour qu'il soit exploitable directement par les fonctions de dessins employées par le pilote. Le type de donnée renvoyée dépend du pilote.
  Remonter
- public send(Image $image)
  Construit l'image passée en paramètre et l'envoie sur la sortie standard accompagnée des en-têtes HTTP correspondants. A aucun moment vous ne devriez avoir besoin d'appeler vous-même cette méthode. Pour générez les images, utilisez Graph::draw().
  Remonter
- public get(Image $image)
  - Disponible depuis Artichow 1.1
  Construit l'image passée en paramètre et la renvoie sous forme de données binaires. Vous pouvez donc la stocker dans une variable si vous voulez faire des manipulations spécifiques. A aucun moment vous ne devriez avoir besoin d'appeler vous-même cette méthode. Pour générez les images, utilisez Graph::draw().
  Remonter
- public setAntiAliasing(bool $bool)
  - Disponible depuis Artichow 1.0.9
  Active ou désactive l'anti-aliasing lors du dessin. L'anti-aliasing permet d'avoir des graphiques plus propres mais demande plus de ressources. L'anti-aliasing n'est pas activé par défaut.
  Voir aussi :
  - Image::setAntiAliasing()
  Remonter
- public copyImage(Image $image, Point $p1, Point $p2)
  Copie l'image $image vers la sous-image courante. L'image sera copiée sur la sous-image du point $p1 (coin haut-gauche) ou point $p2 (coin bas-droit). Les coordonnées de $p1 et $p2 doivent être relatives à celles de la sous-image.
  Remonter
- public copyResizeImage(Image $image, Point $d1, Point $d2, Point $s1, Point $s2, bool $resampled)
  Copie l'image $image vers l'image courante. L'image $image sera copiée des points $s1 (coin haut-gauche) et $s2 (coin bas-droit) vers les points $d1 (coin haut-gauche) et $d2 (coin bas-droit) de l'image courante. Si $resampled est placé à TRUE, l'image sera rééchantillonée.
  Remonter
- public string(Text $text, Point $point, int $width := NULL)
  Dessine la chaîne de caractères $text à partir du point $point. Les coordonnées de $point doivent être relatives à celles de la sous-image. Le paramètre $width permet de spécifier la largeur maximale en pixels de la boîte de texte.
  Voir aussi :
  - Driver::getTextHeight()
  - Driver::getTextWidth()
  Remonter
- public point(Color $color, Point $point)
  Dessine un pixel de couleur $color au point $point. Les coordonnées de $point doivent être relatives à celles de la sous-image.
  Remonter
- public line(Color $color, Line $line)
  Dessine la ligne $line de couleur $color. Les coordonnées de la ligne doivent être relatives à celles de la sous-image.
  Remonter
- public arc(Color $color, Point $center, int $width, int $height, float $from, float $to)
  Dessine un arc d'ellipse de couleur $color dont les deux extrémités sont reliées au centre de l'ellipse. L'ellipse a pour centre $center et est de largeur et hauteur respectives $width et $height. L'angle de départ pour l'arc est $from et l'angle d'arrivée $to.
  Voir aussi :
  - Driver::filledArc()
  Remonter
- public filledArc(mixed $background, Point $center, int $width, int $height, float $from, float $to)
  Dessine un arc d'ellipse dont les deux extrémités sont reliées au centre de l'ellipse et le remplit avec la couleur ou le dégradé $background. L'ellipse a pour centre $center et est de largeur et hauteur respectives $width et $height. L'angle de départ pour l'arc est $from et l'angle d'arrivée $to.
  Voir aussi :
  - Driver::arc()
  Remonter
- public ellipse(Color $color, Point $center, int $width, int $height)
  Dessine une ellipse de couleur $color, ayant pour centre $center et de largeur et hauteur respectives $width et $height. Les coordonnées de l'ellipse doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::filledEllipse()
  Remonter
- public filledEllipse(mixed $background, Point $center, int $width, int $height)
  Dessine et remplit une ellipse avec la couleur ou le dégradé $background. Cette ellipse a pour centre $center et est de largeur et hauteur respectives $width et $height. Les coordonnées de l'ellipse doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::ellipse()
  Remonter
- public rectangle(Color $color, Line $line)
  Dessine un rectangle de couleur $color dont la ligne $line représente la diagonale. Les coordonnées du rectangle doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::filledRectangle()
  Remonter
- public filledRectangle(mixed $background, Line $line)
  Dessine et remplit un rectangle avec la couleur ou le dégradé $background dont la ligne $line représente la diagonale. Les coordonnées du rectangle doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::rectangle()
  Remonter
- public polygon(Color $color, Polygon $polygon)
  Dessine le polygone $polygon de couleur $color. Les coordonnées de chaque point du polygone doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::filledPolygon()
  Remonter
- public filledPolygon(mixed $background, Polygon $polygon)
  Dessine et remplit le polygone $polygon avec la couleur ou le dégradé $background. Les coordonnées de chaque point du polygone doivent être relatives à celles de la sous-image.
  Voir aussi :
  - Driver::polygon()
  Remonter
- public float getTextWidth(Text $text)
  - Disponible depuis Artichow 1.1
  Renvoie la largeur prise sur l'image par le Text $text.
  Voir aussi :
  - Driver::getTextHeight()
  Remonter
- public float getTextHeight(Text $text)
  - Disponible depuis Artichow 1.1
  Renvoie la hauteur prise sur l'image par le Text $text.
  Voir aussi :
  - Driver::getTextWidth()
  Remonter
- protected bool isCompatibleWithFont(Font $font)
  - Disponible depuis Artichow 1.1
  Renvoie TRUE si le pilote actuel est compatible avec la police $font, FALSE sinon. Chaque pilote doit définir les polices avec lesquelles il est compatible.
  Remonter