Fonctions d'image
La classe Nette\Utils\Image simplifie la manipulation des images, comme le redimensionnement, le recadrage, la netteté, le dessin ou la fusion de plusieurs images.
PHP dispose d'un ensemble complet de fonctions pour manipuler les images. Mais l'API n'est pas très agréable. Il ne s'agirait pas d'un Neat Framework pour proposer une API sexy.
Installation :
composer require nette/utils
Les exemples suivants supposent que l'alias de classe suivant est défini :
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Création d'une image
Nous allons créer une nouvelle image en couleur, par exemple avec des dimensions de 100×200 :
$image = Image::fromBlank(100, 200);
En option, vous pouvez spécifier une couleur de fond (noir par défaut) :
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Ou nous chargeons l'image depuis un fichier :
$image = Image::fromFile('nette.jpg');
Sauvegarder l'image
L'image peut être enregistrée dans un fichier :
$image->save('resampled.jpg');
Nous pouvons spécifier une qualité de compression comprise entre 0 et 100 pour JPEG (85 par défaut), WEBP (80 par défaut) et AVIF (30 par défaut) et entre 0 et 9 pour PNG (9 par défaut) :
$image->save('resampled.jpg', 80); // JPEG, qualité 80
Si le format ne ressort pas clairement de l'extension du fichier, il peut être spécifié par une constante:
$image->save('resampled.tmp', null, ImageType::JPEG);
L'image peut être écrite dans une variable plutôt que sur le disque :
$data = $image->toString(ImageType::JPEG, 80); // JPEG, qualité 80%.
ou envoyer directement au navigateur avec l'en-tête HTTP approprié Content-Type
:
// 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 qui peut être vérifié à l'aide de la fonction isTypeSupported(). Les animations ne sont pas prises en charge.
Les formats sont représentés par les constantes ImageType::JPEG
, ImageType::PNG
,
ImageType::GIF
, ImageType::WEBP
, ImageType::AVIF
, et ImageType::BMP
.
$supported = Image::isTypeSupported(ImageType::JPEG);
Besoin de détecter le format d'une image au chargement ? La méthode le renvoie dans le second paramètre :
$image = Image::fromFile('nette.jpg', $type);
La détection proprement dite, sans chargement de l'image, est effectuée par Image::detectTypeFromFile()
.
Redimensionnement de l'image
Une opération courante consiste à redimensionner une image. Les dimensions actuelles sont renvoyées par les méthodes
getWidth()
et getHeight()
.
La méthode resize()
est utilisée pour le redimensionnement. Il s'agit d'un exemple de changement de taille
proportionnel afin qu'il ne dépasse pas 500×300 pixels (soit la largeur sera exactement de 500px, soit la hauteur sera
exactement de 300px, l'une des dimensions est calculée pour maintenir le rapport d'aspect) :
$image->resize(500, 300);
Il est possible de définir une seule dimension et la seconde sera calculée :
$image->resize(500, null); // largeur 500px, hauteur auto
$image->resize(null, 300); // largeur auto, hauteur 300px
Toute dimension peut être spécifiée en pourcentages :
$image->resize('75%', 300); // 75 % × 300px
Le comportement de resize
peut être influencé par les drapeaux suivants. Tous, à l'exception de
Image::Stretch
, préservent le rapport hauteur/largeur.
Drapeau | Description |
---|---|
Image::OrSmaller (par défaut) |
les dimensions résultantes seront inférieures ou égales à celles spécifiées |
Image::OrBigger |
remplit la zone cible et l'étend éventuellement dans une direction |
Image::Cover |
remplit toute la zone et coupe ce qui la dépasse |
Image::ShrinkOnly |
ne fait que réduire l'échelle (n'étend pas une petite image) |
Image::Stretch |
ne conserve pas le rapport d'aspect |
Les drapeaux sont passé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 spécifiant l'une des dimensions (ou les deux) comme un nombre négatif :
$flipped = $image->resize(null, '-100%'); // retournement à la verticale
$flipped = $image->resize('-100%', '-100%'); // rotation à 180
$flipped = $image->resize(-125, 500); // redimensionnement et retournement horizontal
Après avoir réduit l'image, nous pouvons l'améliorer en la rendant plus nette :
$image->sharpen();
Culture
La méthode crop()
est utilisée pour les cultures :
$image->crop($left, $top, $width, $height);
Comme pour resize()
, toutes les valeurs peuvent être spécifiées en pourcentages. Les pourcentages pour
$left
et $top
sont calculés à partir de l'espace restant, comme pour la propriété CSS
background-position
:
$image->crop('100%', '50%', '80%', '80%');
L'image peut également être recadrée automatiquement, par exemple en rognant les bords noirs :
$image->cropAuto(IMG_CROP_BLACK);
La méthode cropAuto()
est une encapsulation objet de la fonction imagecropauto()
, voir sa documentation pour plus d'informations.
Couleurs
La méthode ImageColor::rgb()
permet de définir une couleur à l'aide des valeurs rouge, vert et bleu (RVB). En
option, vous pouvez également spécifier une valeur de transparence allant de 0 (complètement transparent) à 1 (complètement
opaque), comme dans les CSS.
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
La méthode ImageColor::hex()
vous permet de définir une couleur en utilisant le format hexadécimal, comme dans
CSS. Elle prend en charge les formats #rgb
, #rrggbb
, #rgba
, et #rrggbbaa
:
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
Les couleurs peuvent être utilisées dans d'autres méthodes, telles que ellipse()
,
fill()
, etc.
Dessin et édition
Vous pouvez dessiner, vous pouvez écrire, vous pouvez utiliser toutes les fonctions PHP pour la manipulation d'images, voir Aperçu des méthodes, mais dans une enveloppe orientée objet :
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
Puisque les fonctions PHP pour dessiner des rectangles ne sont pas pratiques en raison de la spécification des coordonnées,
la classe Image
offre leurs remplacements sous la forme de fonctions rectangleWH() et
filledRectangleWH().
Fusionner plusieurs images
Vous pouvez facilement placer une autre image dans l'image :
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// les coordonnées peuvent également être définies en pourcentage
$blank->place($logo, '80%', '80%'); // près du coin inférieur droit de l'image
Lors du collage, le canal alpha est respecté, de plus, nous pouvons influencer la transparence de l'image insérée (nous allons créer un filigrane) :
$blank->place($image, '80%', '80%', 25); // la transparence est de 25 %.
Une telle API est vraiment un plaisir à utiliser, n'est-ce pas ?
Aperçu des méthodes
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Crée une nouvelle image en couleurs réelles avec les dimensions données. La couleur par défaut est le noir.
static fromFile(string $file, int &$detectedFormat=null): Image
Lit une image à partir d'un fichier et renvoie son type à $detectedFormat
.
static fromString(string $s, int &$detectedFormat=null): Image
Lit une image à partir d'une chaîne de caractères et renvoie son type à
$detectedFormat
.
static rgb(int $red, int $green, int $blue, int $transparency=0): array
Cette fonctionnalité a été remplacée par la classe ImageColor
, voir les couleurs.
static typeToExtension(int $type): string
Renvoie l'extension du fichier pour le type donné.
static typeToMimeType(int $type): string
Renvoie le type de mime pour le type donné.
static extensionToType(string $extension): int
Renvoie le type d' image en fonction de l'extension du fichier.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int
Renvoie le type de fichier image et, dans les paramètres $width
et
$height
, ses dimensions.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int
Renvoie le type d' image à partir d'une chaîne de caractères et, dans les paramètres
$width
et $height
, ses dimensions.
static isTypeSupported(int $type): bool
Détermine si le type d' image donné est pris en charge.
static getSupportedTypes(): array
Renvoie un tableau des types d'images pris en charge (constantes ImageType::XXX
).
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Calcule les dimensions du rectangle qui entoure le texte d'une police et d'une taille spécifiées. Il renvoie un tableau
associatif contenant les clés left
, top
, width
, height
. La marge de gauche
peut être négative si le texte commence avec un débordement à gauche.
affine(array $affine, ?array $clip=null): Image
Renvoie une image contenant l'image src transformée affine, en utilisant une zone de découpage optionnelle. (plus).
affineMatrixConcat(array $m1, array $m2): array
Renvoie la concaténation de deux matrices de transformation affine, ce qui est utile si plusieurs transformations doivent être appliquées à la même image en une seule fois. (plus)
affineMatrixGet(int $type, ?mixed $options=null): array
Retourne une matrice de transformation affine. (plus)
alphaBlending(bool $on): void
Permet deux modes différents de dessin sur des images en couleurs vraies. En mode de mélange, la composante du canal alpha de
la couleur fournie à toutes les fonctions de dessin, telles que setPixel()
, détermine la part de la couleur
sous-jacente qui doit être laissée transparaître. Par conséquent, il mélange automatiquement la couleur existante à cet
endroit avec la couleur du dessin, et enregistre le résultat dans l'image. Le pixel résultant est opaque. En mode sans mélange,
la couleur du dessin est copiée littéralement avec les informations de son canal alpha, en remplaçant le pixel de destination.
Le mode de mélange n'est pas disponible lorsque vous dessinez sur des images de palette. (plus)
antialias(bool $on): void
Activez les méthodes de dessin rapide avec anticrénelage pour les lignes et les polygones câblés. Il ne prend pas en charge les composants alpha. Il fonctionne en utilisant une opération de mélange direct. Il ne fonctionne qu'avec des images en couleurs vraies.
L'utilisation de primitives anticrénelées avec une couleur de fond transparente peut donner des résultats inattendus. La méthode de fusion utilise la couleur de fond comme n'importe quelle autre couleur. L'absence de prise en charge de la composante alpha ne permet pas d'utiliser une méthode d'anticrénelage basée sur l'alpha. (plus)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Dessine un arc de cercle centré sur les coordonnées données. (plus)
colorAllocate(int $red, int $green, int $blue): int
Renvoie un identifiant de couleur représentant la couleur composée des composantes RVB données. Elle 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 manière identique à colorAllocate()
avec l'ajout du paramètre de transparence
$alpha
. (plus)
colorAt(int $x, int $y): int
Renvoie l'indice de la couleur du pixel à l'emplacement spécifié dans l'image. Si l'image est une image en couleur, cette fonction renvoie la valeur RVB de ce pixel sous forme d'un nombre entier. Utilisez le décalage de bits et le masquage pour accéder aux valeurs distinctes des composantes rouge, verte et bleue : (plus)
colorClosest(int $red, int $green, int $blue): int
Renvoie l'indice de la couleur dans la palette de l'image qui est „la plus proche“ de la valeur RVB spécifiée. La „distance“ entre la couleur souhaitée et chaque couleur de 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
Renvoie l'indice de la couleur dans la palette de l'image qui est „la plus proche“ de la valeur RVB et du niveau
$alpha
spécifiés. (plus)
colorClosestHWB(int $red, int $green, int $blue): int
Obtenez l'indice de la couleur qui a la teinte, le blanc et la noirceur les plus proches de la couleur donnée. (plus)
colorDeallocate(int $color): void
Désallocation d'une couleur précédemment allouée avec colorAllocate()
ou colorAllocateAlpha()
.
(plus)
colorExact(int $red, int $green, int $blue): int
Renvoie 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
Renvoie l'index de la couleur+alpha spécifiée dans la palette de l'image. (plus)
colorMatch(Image $image2): void
Les couleurs de la version palette d'une image se rapprochent davantage de la version en couleurs réelles. (plus)
colorResolve(int $red, int $green, int $blue): int
Renvoie un indice de couleur pour une couleur demandée, soit la couleur exacte, soit l'alternative la plus proche possible. (plus)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
Renvoie un indice de couleur pour une couleur demandée, soit la couleur exacte, soit l'alternative la plus proche possible. (plus)
colorSet(int $index, int $red, int $green, int $blue): void
Ceci définit l'index spécifié dans la palette à la couleur spécifiée. (plus)
colorsForIndex(int $index): array
Obtient la couleur pour un indice spécifié. (plus)
colorsTotal(): int
Renvoie le nombre de couleurs dans une palette d'images. (plus)
colorTransparent(?int $color=null): int
Obtient ou définit la couleur transparente de l'image. (plus)
convolution(array $matrix, float $div, float $offset): void
Applique une matrice de convolution sur l'image, en utilisant le coefficient et le décalage donnés. (plus)
Nécessite l'extension GD groupée, il n'est donc pas sûr qu'elle fonctionne 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 à partir des coordonnées $srcX
, $srcY
avec une
largeur de $srcW
et une hauteur de $srcH
. La portion définie sera copiée sur les 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 à partir des coordonnées $srcX
, $srcY
avec une
largeur de $srcW
et une hauteur de $srcH
. La portion définie sera copiée sur les 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 à partir des coordonnées $srcX
, $srcY
avec une
largeur de $srcW
et une hauteur de $srcH
. La portion définie sera copiée sur les coordonnées,
$dstX
et $dstY
.
Cette fonction est identique à copyMerge()
, sauf que lors de la fusion, elle préserve la teinte de la source en
convertissant les pixels de destination 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 de manière fluide les valeurs des pixels, de sorte que, notamment, la réduction de la taille d'une image conserve une grande clarté.
En d'autres termes, copyResampled()
prendra une zone rectangulaire de $src
de largeur
$srcW
et de hauteur $srcH
à la position ($srcX
,$srcY
) et la placera dans une
zone rectangulaire de l'image de largeur $dstW
et de hauteur $dstH
à la position
($dstX
,$dstY
).
Si les coordonnées, la largeur et la hauteur de la source et de la destination diffèrent, le fragment d'image sera étiré ou rétréci de manière appropriée. Les coordonnées se rapportent au coin supérieur gauche. Cette fonction peut être utilisée pour copier des régions dans la même image, mais si les régions se chevauchent, les résultats seront impré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()
prendra une zone
rectangulaire de $src
de largeur $srcW
et de hauteur $srcH
à la position
($srcX
,$srcY
) et la placera dans une zone rectangulaire de l'image de largeur $dstW
et de
hauteur $dstH
à la position ($dstX
,$dstY
).
Si les coordonnées, la largeur et la hauteur de la source et de la destination diffèrent, le fragment d'image sera étiré ou rétréci de manière appropriée. Les coordonnées se rapportent au coin supérieur gauche. Cette fonction peut être utilisée pour copier des régions dans la même image, mais si les régions se chevauchent, les résultats seront imprévisibles. (plus)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Recadrer une image dans une zone rectangulaire donnée. Les dimensions peuvent être transmises sous forme d'entiers en pixels
ou de chaînes de caractères en pourcentage (par exemple, '50%'
).
cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Recadrage automatique d'une image en fonction de l'adresse $mode
. (plus)
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Dessine une ellipse centrée sur les coordonnées spécifiées. (plus)
fill(int $x, int $y, ImageColor $color): void
Effectue un remplissage par inondation à partir de la coordonnée donnée (en haut à gauche, c'est 0, 0) avec le
$color
donné dans l'image. (plus)
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Dessine un arc partiel centré sur la coordonnée spécifiée dans l'image. (plus)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Dessine une ellipse centrée sur la coordonnée spécifiée dans l'image. (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 de $color
dans l'image commençant à $x1
& $y1
et se
terminant à $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 de $color
dans l'image à partir des points $left
& $top
avec la largeur $width
et la 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
Effectue un remplissage par inondation dont la couleur de la bordure est définie par $border
. Le point de départ
du remplissage est $x
, $y
(en haut à gauche, 0, 0) et la région est remplie de la couleur
$color
. (plus)
filter(int $filtertype, int …$args): void
Applique le filtre donné $filtertype
sur l'image. (plus)
flip(int $mode): void
Retourne l'image en utilisant l'adresse $mode
. (plus)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Écrivez le texte dans l'image. (plus)
gammaCorrect(float $inputgamma, float $outputgamma): void
Applique une correction gamma à l'image en fonction d'un gamma d'entrée et d'un gamma de sortie. (plus)
getClip(): array
Récupère le rectangle d'écrêtage actuel, c'est-à-dire la zone au-delà de laquelle aucun pixel ne sera dessiné. (plus)
getHeight(): int
Renvoie la hauteur de l'image.
getImageResource(): resource|GdImage
Retourne la ressource originale.
getWidth(): int
Renvoie la largeur de l'image.
interlace(?int $interlace=null): int
Active ou désactive le bit d'entrelacement. Si le bit d'entrelacement est activé et que l'image est utilisée comme une image JPEG, l'image est créée comme un JPEG progressif. (plus)
isTrueColor(): bool
Détermine si l'image est une vraie couleur. (plus)
layerEffect(int $effect): void
Définissez le drapeau de mélange alpha pour utiliser les effets de superposition. (plus)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Trace une ligne entre les deux points donnés. (plus)
openPolygon(array $points, ImageColor $color): void
Dessine un polygone ouvert sur l'image. Contrairement à polygon()
, aucune ligne n'est tracée entre le dernier et
le premier point. (plus)
paletteCopy(Image $source): void
Copie la palette du site $source
sur l'image. (plus)
paletteToTrueColor(): void
Convertit une image basée sur une palette, créée par des fonctions comme create()
, en une image en couleurs
réelles, comme createtruecolor()
. (plus)
place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image
Copie $image
sur l'image aux coordonnées $left
et $top
. Les coordonnées peuvent être
transmises sous forme d'entiers en pixels ou de chaînes de caractères en pourcentage (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 à partir des 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 données.
resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Mise à l'échelle d'une image, voir plus d'infos. Les dimensions peuvent être transmises sous
forme d'entiers en pixels ou de chaînes de caractères en pourcentage (par exemple, '50%'
).
resolution(?int $resX=null, ?int $resY=null): mixed
Permet de définir et d'obtenir la résolution d'une image en DPI (points par pouce). Si aucun des paramètres optionnels n'est
donné, la résolution courante est retournée sous forme de tableau indexé. Si seule la valeur $resX
est donnée,
la résolution horizontale et verticale est fixée à cette valeur. Si les deux paramètres facultatifs sont donnés, les
résolutions horizontale et verticale sont respectivement définies à ces valeurs.
La résolution est uniquement utilisée comme méta-information lorsque les images sont lues et écrites dans des formats supportant ce type d'information (actuellement PNG et JPEG). Elle n'affecte pas les opérations de dessin. La résolution par défaut des nouvelles images est de 96 DPI. (plus)
rotate(float $angle, int $backgroundColor): Image
Fait pivoter l'image en utilisant l'adresse $angle
donnée en degrés. Le centre de rotation est le centre de
l'image, et l'image tournée peut avoir des dimensions différentes de celles de l'image originale. (plus)
Nécessite l'extension GD groupée, il n'est donc pas sûr qu'elle fonctionne partout.
save(string $file, ?int $quality=null, ?int $type=null): void
Enregistre une image dans un fichier.
La qualité de la compression est comprise entre 0 et 100 pour JPEG (85 par défaut), WEBP (80 par défaut) et AVIF
(30 par défaut) et entre 0 et 9 pour PNG (9 par défaut). Si le type n'est pas évident à partir de l'extension du fichier,
vous pouvez le spécifier en utilisant l'une des constantes ImageType
.
saveAlpha(bool $saveflag): void
Définit l'indicateur qui détermine s'il faut conserver les informations complètes du canal alpha (par opposition à la transparence d'une seule couleur) lors de l'enregistrement des images PNG.
L'alphablending doit être désactivé (alphaBlending(false)
) pour conserver le canal alpha. (plus)
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Met à l'échelle une image en utilisant l'algorithme d'interpolation donné. (plus)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Affiche une image dans le navigateur.
La qualité de la compression est comprise entre 0 et 100 pour JPEG (85 par défaut), WEBP (80 par défaut) et AVIF (30 par défaut) et entre 0 et 9 pour PNG (9 par défaut).
setBrush(Image $brush): void
Définit l'image de la brosse à utiliser par toutes les fonctions de traçage de lignes (telles que line()
et
polygon()
) lorsque vous dessinez 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 rectangle d'écrêtage 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 affecte 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 à utiliser par toutes les fonctions de dessin de lignes (telles que line()
et
polygon()
) lorsque vous dessinez 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 tracées lors du dessin de rectangles, polygones, arcs, etc. à $thickness
pixels. (plus)
setTile(Image $tile): void
Définit l'image de tuiles à utiliser par toutes les fonctions de remplissage de régions (telles que 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été. N'importe quelle image peut être utilisée
comme tuile, et en définissant l'indice de couleur transparente de l'image de la tuile avec colorTransparent()
, il
est possible de créer une tuile permettant de faire ressortir certaines parties de la zone sous-jacente. (plus)
sharpen(): Image
Affine un peu l'image.
Nécessite l'extension Bundled GD, il n'est donc pas sûr que cela fonctionne partout.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Produit une image sous forme de chaîne.
La qualité de la compression est comprise entre 0 et 100 pour JPEG (85 par défaut), WEBP (80 par défaut) et AVIF (30 par défaut) et entre 0 et 9 pour PNG (9 par défaut).
trueColorToPalette(bool $dither, int $ncolors): void
Convertit une image truecolor en une image palette. (plus)
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Écrit le texte donné dans l'image. (plus)