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)