Travailler avec les images

La classe Nette\Utils\Image simplifie la manipulation des images, comme le redimensionnement, le recadrage, l'accentuation, le dessin ou la fusion de plusieurs images.

PHP dispose d'un ensemble complet de fonctions pour la manipulation des images. Mais leur API n'est pas très pratique. Ce ne serait pas Nette Framework s'il n'apportait pas une API sexy.

Installation :

composer require nette/utils

Tous les exemples supposent qu'un alias a été créé :

use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;

Créer une image

Nous créons une nouvelle image true color, par exemple avec les dimensions 100×200 :

$image = Image::fromBlank(100, 200);

Optionnellement, vous pouvez spécifier la couleur de fond (la valeur par défaut est le noir) :

$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));

Ou nous chargeons l'image depuis un fichier :

$image = Image::fromFile('nette.jpg');

Enregistrer une image

L'image peut être enregistrée dans un fichier :

$image->save('resampled.jpg');

Nous pouvons spécifier la qualité de compression dans la plage 0..100 pour JPEG (par défaut 85), WEBP (par défaut 80) et AVIF (par défaut 30) et 0..9 pour PNG (par défaut 9) :

$image->save('resampled.jpg', 80); // JPEG, qualité 80%

Si le format n'est pas évident d'après l'extension du fichier, il peut être spécifié avec une constante :

$image->save('resampled.tmp', null, ImageType::JPEG);

L'image peut être écrite dans une variable au lieu d'un disque :

$data = $image->toString(ImageType::JPEG, 80); // JPEG, qualité 80%

ou envoyée directement au navigateur avec l'en-tête HTTP Content-Type approprié :

// envoie l'en-tête Content-Type: image/png
$image->send(ImageType::PNG);

Formats

Les formats supportés sont JPEG, PNG, GIF, WebP, AVIF et BMP, cependant, ils doivent également être supportés par votre version de PHP, ce que vous pouvez vérifier avec la fonction isTypeSupported(). Les animations ne sont pas supportées.

Le format est représenté par les constantes ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF et ImageType::BMP.

$supported = Image::isTypeSupported(ImageType::JPEG);

Avez-vous besoin de détecter le format de l'image lors du chargement ? La méthode le retourne dans le deuxième paramètre :

$image = Image::fromFile('nette.jpg', $type);

La détection seule sans charger l'image est effectuée par Image::detectTypeFromFile().

Redimensionnement

Une opération fréquente est le redimensionnement de l'image. Les dimensions actuelles sont retournées par les méthodes getWidth() et getHeight().

La méthode resize() est utilisée pour le changement. Exemple de redimensionnement proportionnel pour ne pas dépasser les dimensions de 500×300 pixels (soit la largeur sera exactement de 500 px, soit la hauteur sera exactement de 300 px, l'une des dimensions sera calculée pour préserver le rapport d'aspect) :

$image->resize(500, 300);

Il est possible de spécifier une seule dimension et l'autre sera calculée :

$image->resize(500, null); // largeur 500px, la hauteur sera calculée

$image->resize(null, 300); // la largeur sera calculée, hauteur 300px

N'importe quelle dimension peut également être indiquée en pourcentage :

$image->resize('75%', 300); // 75 % × 300px

Le comportement de resize peut être influencé par les drapeaux suivants. Tous, sauf Image::Stretch, préservent le rapport d'aspect.

Drapeau Description
Image::OrSmaller (par défaut) les dimensions résultantes seront inférieures ou égales aux dimensions requises
Image::OrBigger remplit (et dépasse éventuellement dans une dimension) la zone cible
Image::Cover remplit la zone cible et recadre ce qui dépasse
Image::ShrinkOnly réduction uniquement (empêche l'étirement d'une petite image)
Image::Stretch ne pas préserver le rapport d'aspect

Les drapeaux sont indiqués comme troisième argument de la fonction :

$image->resize(500, 300, Image::OrBigger);

Les drapeaux peuvent être combinés :

$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);

Les images peuvent être retournées verticalement ou horizontalement en indiquant l'une des dimensions (ou les deux) comme un nombre négatif :

$flipped = $image->resize(null, '-100%'); // retournement vertical

$flipped = $image->resize('-100%', '-100%'); // rotation de 180°

$flipped = $image->resize(-125, 500); // redimensionnement & retournement horizontal

Après avoir réduit l'image, il est possible d'améliorer son apparence par une légère accentuation :

$image->sharpen();

Recadrage

La méthode crop() est utilisée pour le recadrage :

$image->crop($left, $top, $width, $height);

Similairement à resize(), toutes les valeurs peuvent être indiquées en pourcentages. Les pourcentages pour $left et $top sont calculés à partir de l'espace restant, similaire à la propriété CSS background-position :

$image->crop('100%', '50%', '80%', '80%');

L'image peut également être recadrée automatiquement, par exemple pour recadrer les bordures noires :

$image->cropAuto(IMG_CROP_BLACK);

La méthode cropAuto() est un remplacement orienté objet de la fonction imagecropauto(), vous trouverez plus d'informations dans sa documentation.

Couleurs

La méthode ImageColor::rgb() vous permet de définir une couleur en utilisant les valeurs rouge, vert et bleu (RVB). Optionnellement, vous pouvez également spécifier une valeur de transparence dans la plage de 0 (complètement transparent) à 1 (complètement opaque), c'est-à-dire comme en CSS.

$color = ImageColor::rgb(255, 0, 0); // Rouge
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Bleu semi-transparent

La méthode ImageColor::hex() permet de définir une couleur en utilisant le format hexadécimal, similaire à CSS. Elle supporte les formats #rgb, #rrggbb, #rgba et #rrggbbaa :

$color = ImageColor::hex("#F00"); // Rouge
$transparentGreen = ImageColor::hex("#00FF0080"); // Vert semi-transparent

Les couleurs peuvent être utilisées dans d'autres méthodes, comme ellipse(), fill(), etc.

Dessin et modifications

Vous pouvez dessiner, vous pouvez écrire, mais ne pas déchirer les feuilles. Toutes les fonctions PHP pour la manipulation d'images sont à votre disposition, voir #Aperçu des méthodes, mais dans une enveloppe objet :

$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));

Parce que les fonctions PHP pour dessiner des rectangles sont peu pratiques à cause de la spécification des coordonnées, la classe Image offre leurs remplacements sous forme de fonctions rectangleWH() et filledRectangleWH().

Fusion de plusieurs images

Il est facile d'insérer une autre image dans une image :

$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));

// les coordonnées peuvent à nouveau être indiquées en pourcentages
$blank->place($logo, '80%', '80%'); // nous insérons près du coin inférieur droit

Lors de l'insertion, le canal alpha est respecté, de plus, nous pouvons influencer la transparence de l'image insérée (nous créons un soi-disant filigrane) :

$blank->place($image, '80%', '80%', 25); // la transparence est de 25 %

Une telle API est vraiment un plaisir à utiliser !

Aperçu des méthodes

static fromBlank (int $width, int $height, ?ImageColor $color=null)Image

Crée une nouvelle image true color des dimensions données. La couleur par défaut est noire.

static fromFile (string $file, int &$detectedFormat=null)Image

Charge une image depuis un fichier et retourne son type dans $detectedFormat.

static fromString (string $s, int &$detectedFormat=null)Image

Charge une image depuis une chaîne de caractères et retourne son type dans $detectedFormat.

static rgb (int $red, int $green, int $blue, int $transparency=0)array

Cette fonction a été remplacée par la classe ImageColor, voir couleurs.

static typeToExtension (int $type)string

Retourne l'extension de fichier pour le type donné.

static typeToMimeType (int $type)string

Retourne le type MIME pour le type donné.

static extensionToType (string $extension)int

Retourne le type de l'image selon l'extension du fichier.

static detectTypeFromFile (string $file, int &$width=null, int &$height=null)?int

Retourne le type de l'image et, dans les paramètres $width et $height, également ses dimensions.

static detectTypeFromString (string $s, int &$width=null, int &$height=null)?int

Retourne le type de l'image depuis une chaîne de caractères et, dans les paramètres $width et $height, également ses dimensions.

static isTypeSupported (int $type)bool

Détermine si le type d'image donné est supporté.

static getSupportedTypes(): array

Retourne un tableau des types d'image supportés.

static calculateTextBox (string $text, string $fontFile, float $size, float $angle=0, array $options=[])array

Calcule les dimensions du rectangle qui entoure le texte dans une certaine police et taille. Retourne un tableau associatif contenant les clés left, top, width, height. La marge gauche peut être négative si le texte commence par un crénage gauche négatif.

affine (array $affine, ?array $clip=null)Image

Retourne une image contenant l'image src transformée affinement en utilisant une zone de découpe optionnelle. (plus).

affineMatrixConcat (array $m1, array $m2)array

Retourne la concaténation de deux matrices de transformation affine, ce qui est utile si plusieurs transformations doivent être appliquées simultanément à la même image. (plus)

affineMatrixGet (int $type, ?mixed $options=null)array

Retourne une matrice de transformation matricielle. (plus)

alphaBlending (bool $on)void

Permet deux modes de dessin différents dans les images truecolor. En mode de fusion, la composante du canal alpha de la couleur utilisée dans toutes les fonctions de dessin, comme par exemple setPixel(), détermine dans quelle mesure la couleur de base devrait être autorisée à transparaître. Le résultat est que la couleur existante est automatiquement mélangée à ce point avec la couleur dessinée et le résultat est enregistré dans l'image. Le pixel résultant est opaque. En mode sans fusion, la couleur dessinée est copiée littéralement avec les informations du canal alpha et remplace le pixel cible. Le mode de fusion n'est pas disponible lors du dessin sur des images à palette. (plus)

antialias (bool $on): void

Active le dessin de lignes et de polygones lissés. Ne supporte pas les canaux alpha. Fonctionne uniquement sur les images truecolor.

L'utilisation de primitives anticrénelées avec une couleur de fond transparente peut aboutir à certains résultats inattendus. La méthode de fusion utilise la couleur de fond comme toutes les autres couleurs. (plus)

arc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color)void

Dessine un arc de cercle centré aux coordonnées données. (plus)

colorAllocate (int $red, int $green, int $blue)int

Retourne un identifiant de couleur représentant la couleur composée des composantes RVB données. Doit être appelée pour créer chaque couleur qui doit être utilisée dans l'image. (plus)

colorAllocateAlpha (int $red, int $green, int $blue, int $alpha)int

Se comporte de la même manière que colorAllocate() avec l'ajout du paramètre de transparence $alpha. (plus)

colorAt (int $x, int $y)int

Retourne l'index de couleur du pixel à l'emplacement spécifié dans l'image. Si l'image est truecolor, cette fonction retourne la valeur RVB de ce pixel comme un entier. Utilisez le décalage de bits et le masquage de bits pour accéder aux valeurs séparées des composantes rouge, verte et bleue : (plus)

colorClosest (int $red, int $green, int $blue)int

Retourne l'index de couleur dans la palette de l'image qui est “le plus proche” de la valeur RVB spécifiée. La “distance” entre la couleur requise et chaque couleur dans la palette est calculée comme si les valeurs RVB représentaient des points dans un espace tridimensionnel. (plus)

colorClosestAlpha (int $red, int $green, int $blue, int $alpha)int

Retourne l'index de couleur dans la palette de l'image qui est “le plus proche” de la valeur RVB spécifiée et du niveau $alpha. (plus)

colorClosestHWB (int $red, int $green, int $blue)int

Obtient l'index de la couleur qui a la teinte, le blanc et le noir les plus proches de la couleur donnée. (plus)

colorDeallocate (int $color)void

Désalloue une couleur précédemment allouée avec colorAllocate() ou colorAllocateAlpha(). (plus)

colorExact (int $red, int $green, int $blue)int

Retourne l'index de la couleur spécifiée dans la palette de l'image. (plus)

colorExactAlpha (int $red, int $green, int $blue, int $alpha)int

Retourne l'index de la couleur + alpha spécifiée dans la palette de l'image. (plus)

colorMatch (Image $image2)void

Adapte les couleurs de la palette à la seconde image. (plus)

colorResolve (int $red, int $green, int $blue)int

Retourne l'index de couleur pour la couleur requise, soit la couleur exacte, soit l'alternative la plus proche possible. (plus)

colorResolveAlpha (int $red, int $green, int $blue, int $alpha)int

Retourne l'index de couleur pour la couleur requise, soit la couleur exacte, soit l'alternative la plus proche possible. (plus)

colorSet (int $index, int $red, int $green, int $blue)void

Définit l'index spécifié dans la palette à la couleur spécifiée. (plus)

colorsForIndex (int $index)array

Obtient la couleur de l'index spécifié. (plus)

colorsTotal(): int

Retourne le nombre de couleurs dans la palette de l'image. (plus)

colorTransparent (?int $color=null)int

Obtient ou définit la couleur transparente dans l'image. (plus)

convolution (array $matrix, float $div, float $offset)void

Applique une matrice de convolution à l'image, en utilisant le coefficient et le décalage donnés. (plus)

Nécessite la présence de Bundled GD extension, peut donc ne pas fonctionner partout.

copy (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH)void

Copie une partie de $src sur l'image commençant aux coordonnées $srcX, $srcY avec une largeur $srcW et une hauteur $srcH. La partie définie sera copiée aux coordonnées $dstX et $dstY. (plus)

copyMerge (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity)void

Copie une partie de $src sur l'image commençant aux coordonnées $srcX, $srcY avec une largeur $srcW et une hauteur $srcH. La partie définie sera copiée aux coordonnées $dstX et $dstY. (plus)

copyMergeGray (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity)void

Copie une partie de $src sur l'image commençant aux coordonnées $srcX, $srcY avec une largeur $srcW et une hauteur $srcH. La partie définie sera copiée aux coordonnées $dstX et $dstY.

Cette fonction est identique à copyMerge() à l'exception que lors de la fusion, elle préserve la teinte de la source en convertissant les pixels cibles en échelle de gris avant l'opération de copie. (plus)

copyResampled (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Copie une partie rectangulaire d'une image sur une autre image, en interpolant en douceur les valeurs des pixels, de sorte que notamment la réduction de la taille de l'image conserve toujours une grande clarté.

En d'autres termes, copyResampled() prend une zone rectangulaire de $src de largeur $srcW et de hauteur $srcH à la position ($srcX, $srcY) et la place dans une zone rectangulaire de l'image de largeur $dstW et de hauteur $dstH à la position ($dstX, $dstY).

Si les coordonnées source et cible, la largeur et la hauteur diffèrent, un étirement ou une réduction correspondant du fragment d'image est effectué. Les coordonnées se réfèrent au coin supérieur gauche. Cette fonction peut être utilisée pour copier des zones dans la même image, mais si les zones se chevauchent, les résultats ne seront pas prévisibles. (plus)

copyResized (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Copie une partie rectangulaire d'une image sur une autre image. En d'autres termes, copyResized() obtient une zone rectangulaire de $src de largeur $srcW et de hauteur $srcH à la position ($srcX, $srcY) et la place dans une zone rectangulaire de l'image de largeur $dstW et de hauteur $dstH à la position ($dstX, $dstY).

Si les coordonnées source et cible, la largeur et la hauteur diffèrent, un étirement ou une réduction correspondant du fragment d'image est effectué. Les coordonnées se réfèrent au coin supérieur gauche. Cette fonction peut être utilisée pour copier des zones dans la même image, mais si les zones se chevauchent, les résultats ne seront pas prévisibles. (plus)

crop (int|string $left, int|string $top, int|string $width, int|string $height)Image

Recadre l'image dans la zone rectangulaire donnée. Les dimensions peuvent être spécifiées comme des entiers en pixels ou des chaînes en pourcentages (par exemple '50%').

cropAuto (int $mode=-1, float $threshold=.5, ?ImageColor $color=null)Image

Recadre automatiquement l'image selon le $mode donné. (plus)

ellipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Dessine une ellipse centrée aux coordonnées spécifiées. (plus)

fill (int $x, int $y, ImageColor $color)void

Remplit une zone en commençant par la coordonnée donnée (en haut à gauche est 0, 0) avec la $color donnée. (plus)

filledArc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style)void

Dessine un arc partiel centré aux coordonnées spécifiées. (plus)

filledEllipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Dessine une ellipse centrée aux coordonnées spécifiées. (plus)

filledPolygon (array $points, ImageColor $color)void

Crée un polygone rempli dans l'image. (plus)

filledRectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Crée un rectangle rempli avec $color dans l'image commençant au point $x1 & $y1 et se terminant au point $x2 & $y2. Le point 0, 0 est le coin supérieur gauche de l'image. (plus)

filledRectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Crée un rectangle rempli avec $color dans l'image commençant au point $left & $top avec une largeur $width et une hauteur $height. Le point 0, 0 est le coin supérieur gauche de l'image.

fillToBorder (int $x, int $y, int $border, ImageColor $color)void

Dessine un remplissage dont la couleur de bordure est définie par $border. Le point de départ du remplissage est $x, $y (en haut à gauche est 0, 0) et la zone est remplie avec la couleur $color. (plus)

filter (int $filtertype, int …$args)void

Applique le filtre $filtertype donné à l'image. (plus)

flip (int $mode): void

Retourne l'image en utilisant le $mode donné. (plus)

ftText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Écrit le texte dans l'image. (plus)

gammaCorrect (float $inputgamma, float $outputgamma)void

Applique une correction gamma à l'image par rapport au gamma d'entrée et de sortie. (plus)

getClip(): array

Retourne le découpage actuel, c'est-à-dire la zone au-delà de laquelle aucun pixel ne sera dessiné. (plus)

getHeight(): int

Retourne la hauteur de l'image.

getImageResource(): resource|GdImage

Retourne la ressource originale.

getWidth(): int

Retourne la largeur de l'image.

interlace (?int $interlace=null)int

Active ou désactive le mode entrelacé. Si le mode entrelacé est activé et que l'image est enregistrée en JPEG, elle sera enregistrée en JPEG progressif. (plus)

isTrueColor(): bool

Détermine si l'image est truecolor. (plus)

layerEffect (int $effect)void

Définit le drapeau de fusion alpha pour utiliser les effets de calque. (plus)

line (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Dessine une ligne entre deux points donnés. (plus)

openPolygon (array $points, ImageColor $color)void

Dessine un polygone ouvert sur l'image. Contrairement à polygon(), aucune ligne n'est dessinée entre le dernier et le premier point. (plus)

paletteCopy (Image $source)void

Copie la palette de $source dans l'image. (plus)

paletteToTrueColor(): void

Convertit une image basée sur une palette en image en couleurs réelles. (plus)

place (Image $image, int|string $left=0, int|string $top=0, int $opacity=100)Image

Copie $image dans l'image aux coordonnées $left et $top. Les coordonnées peuvent être spécifiées comme des entiers en pixels ou des chaînes en pourcentages (par exemple '50%').

polygon (array $points, ImageColor $color)void

Crée un polygone dans l'image. (plus)

rectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Crée un rectangle aux coordonnées spécifiées. (plus)

rectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Crée un rectangle aux coordonnées spécifiées.

resize (int|string $width, int|string $height, int $flags=Image::OrSmaller)Image

Redimensionne l'image, plus d'informations. Les dimensions peuvent être spécifiées comme des entiers en pixels ou des chaînes en pourcentages (par exemple '50%').

resolution (?int $resX=null, ?int $resY=null)mixed

Définit ou retourne la résolution de l'image en DPI (points par pouce). Si aucun des paramètres optionnels n'est spécifié, la résolution actuelle est retournée comme un tableau indexé. Si seulement $resX est spécifié, la résolution horizontale et verticale est définie à cette valeur. Si les deux paramètres optionnels sont spécifiés, la résolution horizontale et verticale est définie à ces valeurs.

La résolution est utilisée uniquement comme méta-information lorsque les images sont lues et écrites dans des formats supportant ce type d'information (actuellement PNG et JPEG). Cela n'affecte aucune opération de dessin. La résolution par défaut des nouvelles images est de 96 DPI. (plus)

rotate (float $angle, int $backgroundColor)Image

Pivote l'image en utilisant l'angle $angle spécifié en degrés. Le centre de rotation est le centre de l'image et l'image pivotée peut avoir des dimensions différentes de l'image originale. (plus)

Nécessite la présence de Bundled GD extension, peut donc ne pas fonctionner partout.

save (string $file, ?int $quality=null, ?int $type=null)void

Enregistre l'image dans un fichier.

La qualité de compression est dans la plage 0..100 pour JPEG (par défaut 85), WEBP (par défaut 80) et AVIF (par défaut 30) et 0..9 pour PNG (par défaut 9). Si le type n'est pas évident d'après l'extension du fichier, vous pouvez le spécifier en utilisant l'une des constantes ImageType.

saveAlpha (bool $saveflag)void

Définit le drapeau indiquant s'il faut conserver les informations complètes du canal alpha lors de l'enregistrement des images PNG (contrairement à la transparence monochrome).

La fusion alpha doit être désactivée (alphaBlending(false)) pour que le canal alpha soit conservé en premier lieu. (plus)

scale (int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED)Image

Met à l'échelle l'image en utilisant l'algorithme d'interpolation donné. (plus)

send (int $type=ImageType::JPEG, ?int $quality=null)void

Affiche l'image dans le navigateur.

La qualité de compression est dans la plage 0..100 pour JPEG (par défaut 85), WEBP (par défaut 80) et AVIF (par défaut 30) et 0..9 pour PNG (par défaut 9).

setBrush (Image $brush)void

Définit l'image de pinceau qui sera utilisée dans toutes les fonctions de dessin de lignes (par exemple line() et polygon()) lors du dessin avec les couleurs spéciales IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED. (plus)

setClip (int $x1, int $y1, int $x2, int $y2)void

Définit le découpage actuel, c'est-à-dire la zone au-delà de laquelle aucun pixel ne sera dessiné. (plus)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Définit la méthode d'interpolation, qui affectera les méthodes rotate() et affine(). (plus)

setPixel (int $x, int $y, ImageColor $color)void

Dessine un pixel à la coordonnée spécifiée. (plus)

setStyle (array $style)void

Définit le style qui doit être utilisé par toutes les fonctions de dessin de lignes (par exemple line() et polygon()) lors du dessin avec la couleur spéciale IMG_COLOR_STYLED ou des lignes d'images avec la couleur IMG_COLOR_STYLEDBRUSHED. (plus)

setThickness (int $thickness)void

Définit l'épaisseur des lignes lors du dessin de rectangles, polygones, arcs, etc. à $thickness pixels. (plus)

setTile (Image $tile)void

Définit l'image de tuile qui sera utilisée dans toutes les fonctions de remplissage de région (par exemple fill() et filledPolygon()) lors du remplissage avec la couleur spéciale IMG_COLOR_TILED.

Une tuile est une image utilisée pour remplir une zone avec un motif répétitif. N'importe quelle image peut être utilisée comme tuile et en définissant l'index de couleur transparente de l'image de tuile avec colorTransparent(), une tuile peut être créée où certaines parties de la zone sous-jacente transparaîtront. (plus)

sharpen(): Image

Accentue l'image.

Nécessite la présence de Bundled GD extension, peut donc ne pas fonctionner partout.

toString (int $type=ImageType::JPEG, ?int $quality=null)string

Enregistre l'image dans une chaîne de caractères.

La qualité de compression est dans la plage 0..100 pour JPEG (par défaut 85), WEBP (par défaut 80) et AVIF (par défaut 30) et 0..9 pour PNG (par défaut 9).

trueColorToPalette (bool $dither, int $ncolors)void

Convertit une image truecolor en image à palette. (plus)

ttfText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Affiche le texte donné dans l'image. (plus)

version: 4.0