Lavorare con le immagini
La classe Nette\Utils\Image semplifica la manipolazione delle immagini: ridimensionare, ritagliare, aumentare la nitidezza, disegnare o unire più immagini.
PHP ha un ampio insieme di funzioni per manipolare le immagini. La loro API, però, non è molto amichevole. Non sarebbe Nette Framework se non tirasse fuori un'API deliziosa.
Installazione:
composer require nette/utils
Gli esempi seguenti presuppongono che sia definito questo alias di classe:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Creare un'immagine
Create una nuova immagine truecolor, per esempio di dimensioni 100×200:
$image = Image::fromBlank(100, 200);
Facoltativamente potete indicare il colore di sfondo (di norma è il nero):
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Oppure caricate un'immagine da un file:
$image = Image::fromFile('nette.jpg');
Salvare l'immagine
L'immagine si può salvare in un file:
$image->save('resampled.jpg');
Potete indicare la qualità della compressione nell'intervallo 0–100 per JPEG (di norma 85), WEBP (di norma 80) e AVIF (di norma 30), e 0–9 per PNG (di norma 9):
$image->save('resampled.jpg', 80); // JPEG, qualità 80%
Se il formato non è chiaro dall'estensione del file, si può indicare con una costante:
$image->save('resampled.tmp', null, ImageType::JPEG);
Invece di salvarla su disco, l'immagine si può scrivere in una variabile:
$data = $image->toString(ImageType::JPEG, 80); // JPEG, qualità 80%
oppure inviare direttamente al browser con l'header HTTP Content-Type appropriato:
// invia l'header Content-Type: image/png
$image->send(ImageType::PNG);
Formati
I formati supportati sono JPEG, PNG, GIF, WebP, AVIF e BMP. Anche la vostra versione di PHP deve però supportarli, cosa che potete verificare con la funzione isTypeSupported(). Le animazioni non sono supportate.
I formati sono rappresentati dalle costanti ImageType::JPEG, ImageType::PNG,
ImageType::GIF, ImageType::WEBP, ImageType::AVIF e ImageType::BMP.
$supported = Image::isTypeSupported(ImageType::JPEG);
Vi serve rilevare il formato dell'immagine durante il caricamento? Il metodo lo restituisce nel secondo parametro:
$image = Image::fromFile('nette.jpg', $type);
Il rilevamento senza caricare l'immagine si ottiene con Image::detectTypeFromFile().
Ridimensionamento
Un'operazione comune è ridimensionare un'immagine. Le dimensioni correnti si ottengono con i metodi getWidth() e
getHeight().
Per il ridimensionamento si usa il metodo resize(). Esempio di ridimensionamento proporzionale in modo che
l'immagine non superi i 500×300 pixel (o la larghezza sarà esattamente 500px, oppure l'altezza sarà esattamente 300px; una
delle due dimensioni viene calcolata per mantenere le proporzioni):
$image->resize(500, 300);
È possibile indicare una sola dimensione e l'altra verrà calcolata automaticamente:
$image->resize(500, null); // larghezza 500px, altezza calcolata automaticamente
$image->resize(null, 300); // larghezza calcolata automaticamente, altezza 300px
Entrambe le dimensioni si possono indicare anche in percentuale:
$image->resize('75%', 300); // 75 % × 300px
Il comportamento di resize() si può influenzare con i flag seguenti. Tutti i flag tranne
Image::Stretch mantengono le proporzioni.
| Flag | Descrizione |
|---|---|
Image::OrSmaller (predefinito) |
le dimensioni risultanti saranno minori o uguali a quelle richieste |
Image::OrBigger |
riempie l'area di destinazione (superandola eventualmente in una dimensione) |
Image::Cover |
riempie l'area di destinazione e ritaglia ciò che la eccede |
Image::ShrinkOnly |
riduce soltanto (impedisce di allargare un'immagine piccola) |
Image::Stretch |
non mantiene le proporzioni |
I flag si passano come terzo argomento del metodo:
$image->resize(500, 300, Image::OrBigger);
I flag si possono combinare:
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
Le immagini si possono ribaltare verticalmente o orizzontalmente indicando una delle dimensioni (o entrambe) come numero negativo:
$flipped = $image->resize(null, '-100%'); // ribalta verticalmente
$flipped = $image->resize('-100%', '-100%'); // ruota di 180°
$flipped = $image->resize(-125, 500); // ridimensiona e ribalta orizzontalmente
Dopo aver ridimensionato un'immagine potete migliorarne l'aspetto con un leggero aumento della nitidezza:
$image->sharpen();
Ritaglio
Per ritagliare si usa il metodo crop():
$image->crop($left, $top, $width, $height);
Come per resize(), tutti i valori si possono indicare in percentuale. Le percentuali di $left e
$top sono calcolate a partire dallo spazio rimanente, come per la proprietà CSS
background-position:
$image->crop('100%', '50%', '80%', '80%');
L'immagine si può anche ritagliare automaticamente, per esempio per rimuovere i bordi neri:
$image->cropAuto(IMG_CROP_BLACK);
Il metodo cropAuto() è un involucro orientato agli oggetti attorno alla funzione imagecropauto();
per maggiori informazioni vedi la sua documentazione.
Colori
Il metodo ImageColor::rgb() vi permette di definire un colore con i valori di rosso, verde e blu (RGB).
Facoltativamente potete indicare anche un valore di trasparenza da 0 (completamente trasparente) a 1 (completamente opaco),
esattamente come in CSS.
$color = ImageColor::rgb(255, 0, 0); // rosso
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // blu semitrasparente
Il metodo ImageColor::hex() vi permette di definire un colore in formato esadecimale, come in CSS. Supporta
i formati #rgb, #rrggbb, #rgba e #rrggbbaa:
$color = ImageColor::hex("#F00"); // rosso
$transparentGreen = ImageColor::hex("#00FF0080"); // verde semitrasparente
I colori si possono usare in altri metodi, come ellipse(), fill() e simili.
Disegnare e modificare
Avete a disposizione tutte le funzioni PHP per manipolare le immagini, vedi la panoramica dei metodi, ma racchiuse in uno stile orientato agli oggetti:
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
Poiché le funzioni native di PHP per disegnare i rettangoli sono un po' scomode a causa del modo in cui si indicano le
coordinate, la classe Image offre delle sostitute: rectangleWH() e filledRectangleWH().
Unire più immagini
Potete collocare facilmente un'altra immagine su quella corrente:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// le coordinate si possono indicare anche in percentuale
$blank->place($logo, '80%', '80%'); // colloca vicino all'angolo in basso a destra
Nel collocamento viene rispettato il canale alfa. Potete inoltre influenzare la trasparenza dell'immagine collocata (creando una filigrana):
$blank->place($image, '80%', '80%', 25); // l'opacità è del 25%
Usare un'API del genere è davvero un piacere!
Panoramica dei metodi
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Crea una nuova immagine truecolor delle dimensioni indicate. Il colore predefinito è il nero.
static fromFile(string $file, int &$detectedFormat=null, string &$warnings=null): Image
Legge un'immagine da un file e ne restituisce il tipo in $detectedFormat. Se passate
$warnings, gli eventuali avvisi non fatali del decodificatore vi vengono salvati dentro invece di essere emessi come
warning di PHP; resta null quando non ce ne sono.
static fromString(string $s, int &$detectedFormat=null, string &$warnings=null): Image
Legge un'immagine da una stringa e ne restituisce il tipo in $detectedFormat. Se
passate $warnings, gli eventuali avvisi non fatali del decodificatore vi vengono salvati dentro invece di essere
emessi come warning di PHP; resta null quando non ce ne sono.
static rgb(int $red, int $green, int $blue, int $transparency=0): array
Questa funzione è stata sostituita dalla classe ImageColor, vedi Colori.
static typeToExtension(int $type): string
Restituisce l'estensione del file per il tipo indicato.
static typeToMimeType(int $type): string
Restituisce il tipo MIME per il tipo indicato.
static extensionToType(string $extension): int
Restituisce il tipo di immagine in base all'estensione del file.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int
Restituisce il tipo del file immagine e, nei parametri $width e $height,
anche le sue dimensioni.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int
Restituisce il tipo dell'immagine contenuta in una stringa e, nei parametri $width e
$height, anche le sue dimensioni.
static isTypeSupported(int $type): bool
Controlla se il tipo di immagine indicato è supportato.
static getSupportedTypes(): array
Restituisce un array dei tipi di immagine supportati.
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Calcola le dimensioni del rettangolo che racchiude il testo in un determinato font e in una determinata dimensione. Restituisce
un array associativo con le chiavi left, top, width, height. Il margine
sinistro può essere negativo se il testo inizia con una sporgenza di crenatura a sinistra.
affine(array $affine, ?array $clip=null): Image
Restituisce un'immagine contenente l'immagine sorgente trasformata in modo affine, con un'area di ritaglio facoltativa. (altro).
alphaBlending(bool $on): void
Permette due diverse modalità di disegno sulle immagini truecolor. In modalità blending, la componente del canale alfa del
colore passato a tutte le funzioni di disegno, come setPixel(), determina quanto del colore sottostante deve
trasparire. Di conseguenza il colore esistente in quel punto viene automaticamente mescolato con il colore di disegno e il
risultato viene salvato nell'immagine. Il pixel risultante è opaco. In modalità non-blending il colore di disegno viene copiato
alla lettera con le sue informazioni sul canale alfa, sostituendo il pixel di destinazione. La modalità blending non è
disponibile quando si disegna su immagini a palette. (altro)
antialias(bool $on): void
Attiva i metodi di disegno veloce con antialiasing per le linee e i poligoni non riempiti. Non supporta le componenti alfa. Funziona con un'operazione di fusione diretta e solo con le immagini truecolor.
Usare le primitive con antialiasing su uno sfondo trasparente può dare risultati inattesi. Il metodo di fusione usa il colore di sfondo come qualsiasi altro colore. L'assenza del supporto alla componente alfa non permette un metodo di antialiasing basato sull'alfa. (altro)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Disegna un arco di cerchio centrato nelle coordinate indicate. (altro)
colorAllocate(int $red, int $green, int $blue): int
Restituisce un identificatore di colore che rappresenta il colore composto dalle componenti RGB indicate. Va chiamato per creare ogni colore che si vuole usare nell'immagine. (altro)
colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int
Si comporta esattamente come colorAllocate(), con l'aggiunta del parametro di trasparenza $alpha. (altro)
colorAt(int $x, int $y): int
Restituisce l'indice di colore del pixel nella posizione indicata dell'immagine. Se l'immagine è truecolor, questa funzione restituisce il valore RGB di quel pixel come intero. Usate lo scorrimento di bit e le maschere per accedere ai singoli valori delle componenti rossa, verde e blu: (altro)
colorClosest(int $red, int $green, int $blue): int
Restituisce l'indice del colore della palette dell'immagine „più vicino“ al valore RGB indicato. La „distanza“ tra il colore desiderato e ogni colore della palette è calcolata come se i valori RGB rappresentassero punti in uno spazio tridimensionale. (altro)
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce l'indice del colore della palette dell'immagine „più vicino“ al valore RGB e al livello $alpha
indicati. (altro)
colorClosestHWB(int $red, int $green, int $blue): int
Ottiene l'indice del colore che ha tonalità, bianco e nero più vicini al colore indicato. (altro)
colorDeallocate(int $color): void
Dealloca un colore precedentemente allocato con colorAllocate() o colorAllocateAlpha(). (altro)
colorExact(int $red, int $green, int $blue): int
Restituisce l'indice del colore indicato nella palette dell'immagine. (altro)
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce l'indice del colore indicato con il canale alfa nella palette dell'immagine. (altro)
colorMatch(Image $image2): void
Fa in modo che i colori della versione a palette di un'immagine si avvicinino di più a quelli della versione truecolor. (altro)
colorResolve(int $red, int $green, int $blue): int
Restituisce un indice di colore per il colore richiesto: o il colore esatto oppure l'alternativa più vicina possibile. (altro)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce un indice di colore per il colore richiesto: o il colore esatto oppure l'alternativa più vicina possibile. (altro)
colorSet(int $index, int $red, int $green, int $blue, int $alpha=0): void
Imposta l'indice indicato della palette al colore indicato. (altro)
colorsForIndex(int $index): array
Ottiene il colore corrispondente a un determinato indice. (altro)
colorsTotal(): int
Restituisce il numero di colori della palette dell'immagine. (altro)
colorTransparent(?int $color=null): int
Ottiene o imposta il colore trasparente dell'immagine. (altro)
convolution(array $matrix, float $div, float $offset): void
Applica all'immagine una matrice di convoluzione, con il coefficiente e lo scostamento indicati. (altro)
Richiede la Bundled GD extension, quindi potrebbe non funzionare ovunque.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
Copia nell'immagine una parte di $src a partire dalle coordinate $srcX, $srcY, con
larghezza $srcW e altezza $srcH. La porzione definita viene copiata alle coordinate $dstX e
$dstY. (altro)
copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Copia nell'immagine una parte di $src a partire dalle coordinate $srcX, $srcY, con
larghezza $srcW e altezza $srcH. La porzione definita viene copiata alle coordinate $dstX e
$dstY. (altro)
copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Copia nell'immagine una parte di $src a partire dalle coordinate $srcX, $srcY, con
larghezza $srcW e altezza $srcH. La porzione definita viene copiata alle coordinate $dstX e
$dstY.
Questa funzione è identica a copyMerge(), tranne per il fatto che durante la fusione conserva la tonalità della
sorgente convertendo in scala di grigi i pixel di destinazione prima dell'operazione di copia. (altro)
copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Copia una porzione rettangolare di un'immagine in un'altra immagine, interpolando in modo morbido i valori dei pixel, così che in particolare la riduzione delle dimensioni di un'immagine ne conservi molta nitidezza.
In altre parole, copyResampled() prende da $src un'area rettangolare di larghezza $srcW
e altezza $srcH nella posizione ($srcX,$srcY) e la colloca in un'area rettangolare
dell'immagine di larghezza $dstW e altezza $dstH nella posizione
($dstX,$dstY).
Se le coordinate, la larghezza e l'altezza di origine e destinazione differiscono, il frammento di immagine viene opportunamente allargato o ristretto. Le coordinate si riferiscono all'angolo in alto a sinistra. Questa funzione si può usare per copiare regioni all'interno della stessa immagine, ma se le regioni si sovrappongono i risultati sono imprevedibili. (altro)
copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Copia una porzione rettangolare di un'immagine in un'altra immagine. In altre parole, copyResized() prende da
$src un'area rettangolare di larghezza $srcW e altezza $srcH nella posizione
($srcX,$srcY) e la colloca in un'area rettangolare dell'immagine di larghezza $dstW e
altezza $dstH nella posizione ($dstX,$dstY).
Se le coordinate, la larghezza e l'altezza di origine e destinazione differiscono, il frammento di immagine viene opportunamente allargato o ristretto. Le coordinate si riferiscono all'angolo in alto a sinistra. Questa funzione si può usare per copiare regioni all'interno della stessa immagine, ma se le regioni si sovrappongono i risultati sono imprevedibili. (altro)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Ritaglia un'immagine all'area rettangolare indicata. Le dimensioni si possono indicare come interi in pixel oppure come
stringhe in percentuale (per esempio '50%').
cropAuto(int $mode=0, float $threshold=.5, ?ImageColor $color=null): Image
Ritaglia automaticamente un'immagine secondo il $mode indicato. (altro)
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Disegna un'ellisse centrata nelle coordinate indicate. (altro)
fill(int $x, int $y, ImageColor $color): void
Esegue un riempimento a partire dalla coordinata indicata (in alto a sinistra è 0, 0) con il $color indicato. (altro)
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Disegna un arco parziale centrato nelle coordinate indicate. (altro)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Disegna un'ellisse centrata nelle coordinate indicate. (altro)
filledPolygon(array $points, ImageColor $color): void
Crea nell'immagine un poligono riempito. (altro)
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Crea nell'immagine un rettangolo riempito con $color, che parte dal punto ($x1, $y1) e
finisce in ($x2, $y2). Il punto (0, 0) è l'angolo in alto a sinistra dell'immagine. (altro)
filledRectangleWH(int $x, int $y, int $width, int $height, ImageColor $color): void
Crea nell'immagine un rettangolo riempito con $color, che parte dal punto ($x, $y) con
larghezza $width e altezza $height. Il punto (0, 0) è l'angolo in alto a sinistra dell'immagine.
fillToBorder(int $x, int $y, ImageColor $borderColor, ImageColor $color): void
Esegue un riempimento il cui bordo è definito da $borderColor. Il punto di partenza del riempimento è
($x, $y) (in alto a sinistra è 0, 0) e l'area viene riempita con il colore $color. (altro)
filter(int $filtertype, int …$args): void
Applica all'immagine il filtro $filtertype indicato. (altro)
flip(int $mode): void
Ribalta l'immagine con il $mode indicato. (altro)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Scrive del testo nell'immagine. (altro)
gammaCorrect(float $inputgamma, float $outputgamma): void
Applica all'immagine la correzione gamma, dati un gamma di ingresso e uno di uscita. (altro)
getClip(): array
Ottiene il rettangolo di ritaglio corrente, cioè l'area oltre la quale non verrà disegnato alcun pixel. (altro)
getHeight(): int
Restituisce l'altezza dell'immagine.
getImageResource(): GdImage
Restituisce la risorsa immagine GD sottostante.
getWidth(): int
Restituisce la larghezza dell'immagine.
interlace(?int $interlace=null): int
Attiva o disattiva l'interlacciamento. Se l'interlacciamento è attivo e l'immagine viene salvata come JPEG, verrà salvata come JPEG progressivo. (altro)
isTrueColor(): bool
Controlla se l'immagine è truecolor. (altro)
layerEffect(int $effect): void
Imposta il flag di alpha blending per usare gli effetti di livello. (altro)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Disegna una linea tra i due punti indicati. (altro)
openPolygon(array $points, ImageColor $color): void
Disegna nell'immagine un poligono aperto. A differenza di polygon(), non viene disegnata alcuna linea tra
l'ultimo e il primo punto. (altro)
paletteCopy(Image $source): void
Copia nell'immagine la palette di $source. (altro)
paletteToTrueColor(): void
Converte un'immagine a palette in un'immagine truecolor. (altro)
place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image
Copia $image sull'immagine corrente alle coordinate ($left, $top). Le coordinate si
possono indicare come interi in pixel oppure come stringhe in percentuale (per esempio '50%').
polygon(array $points, ImageColor $color): void
Crea nell'immagine un poligono. (altro)
rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Crea un rettangolo alle coordinate indicate. (altro)
rectangleWH(int $x, int $y, int $width, int $height, ImageColor $color): void
Crea un rettangolo alle coordinate indicate usando larghezza e altezza.
resize(int|string $width, int|string $height, int $mode=Image::OrSmaller): Image
Ridimensiona un'immagine, vedi maggiori informazioni. Le dimensioni si possono indicare
come interi in pixel oppure come stringhe in percentuale (per esempio '50%').
resolution(?int $resX=null, ?int $resY=null): mixed
Permette di impostare e leggere la risoluzione di un'immagine in DPI (punti per pollice). Se non viene indicato alcun parametro
facoltativo, la risoluzione corrente viene restituita come array indicizzato. Se viene indicato solo $resX, la
risoluzione orizzontale e quella verticale vengono impostate a questo valore. Se vengono indicati entrambi i parametri
facoltativi, la risoluzione orizzontale e quella verticale vengono impostate rispettivamente a questi valori.
La risoluzione è usata solo come meta-informazione quando le immagini vengono lette da e scritte in formati che supportano questo tipo di informazione (attualmente PNG e JPEG). Non influisce su alcuna operazione di disegno. La risoluzione predefinita delle nuove immagini è 96 DPI. (altro)
rotate(float $angle, ImageColor $backgroundColor): Image
Ruota l'immagine dell'$angle indicato in gradi. Il centro di rotazione è il centro dell'immagine e l'immagine
ruotata può avere dimensioni diverse dall'originale. (altro)
Richiede la Bundled GD extension, quindi potrebbe non funzionare ovunque.
save(string $file, ?int $quality=null, ?int $type=null): void
Salva l'immagine in un file.
La qualità della compressione è nell'intervallo 0–100 per JPEG (di norma 85), WEBP (di norma 80) e AVIF (di norma 30), e
0–9 per PNG (di norma 9). Se il tipo non è chiaro dall'estensione del file, potete indicarlo con una delle costanti
ImageType.
saveAlpha(bool $saveflag): void
Imposta il flag che stabilisce se salvare le informazioni complete del canale alfa (invece della trasparenza a colore singolo) durante il salvataggio delle immagini PNG.
Nette attiva questo flag nel costruttore di Image, quindi un'immagine caricata o creata con
fromFile(), fromString() o fromBlank() conserva il proprio canale alfa. Attenzione: con la
modalità di blending predefinita l'alfa di un colore disegnato serve solo a mescolare il risultato e non viene salvato, quindi
chiamate prima alphaBlending(false) se la trasparenza disegnata deve sopravvivere. (altro)
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Scala un'immagine con l'algoritmo di interpolazione indicato. (altro)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Invia l'immagine al browser.
La qualità della compressione è nell'intervallo 0–100 per JPEG (di norma 85), WEBP (di norma 80) e AVIF (di norma 30), e 0–9 per PNG (di norma 9).
setBrush(Image $brush): void
Imposta l'immagine pennello che verrà usata da tutte le funzioni di disegno delle linee (come line() e
polygon()) quando si disegna con i colori speciali IMG_COLOR_BRUSHED o
IMG_COLOR_STYLEDBRUSHED. (altro)
setClip(int $x1, int $y1, int $x2, int $y2): void
Imposta il rettangolo di ritaglio corrente, cioè l'area oltre la quale non verrà disegnato alcun pixel. (altro)
setInterpolation(int $method=IMG_BILINEAR_FIXED): void
Imposta il metodo di interpolazione, che influisce sui metodi rotate() e affine(). (altro)
getInterpolation(): int
Restituisce il metodo di interpolazione corrente usato dai metodi rotate() e affine().
setPixel(int $x, int $y, ImageColor $color): void
Disegna un pixel nella coordinata indicata. (altro)
setStyle(array $style): void
Imposta lo stile che verrà usato da tutte le funzioni di disegno delle linee (come line() e
polygon()) quando si disegna con il colore speciale IMG_COLOR_STYLED, oppure le linee di immagini con il
colore IMG_COLOR_STYLEDBRUSHED. (altro)
setThickness(int $thickness): void
Imposta a $thickness pixel lo spessore delle linee disegnate per rettangoli, poligoni, archi e simili. (altro)
setTile(Image $tile): void
Imposta l'immagine tassello che verrà usata da tutte le funzioni di riempimento delle aree (come fill() e
filledPolygon()) quando si riempie con il colore speciale IMG_COLOR_TILED.
Un tassello è un'immagine usata per riempire un'area con un motivo ripetuto. Come tassello si può usare qualsiasi immagine e,
impostando l'indice del colore trasparente dell'immagine tassello con colorTransparent(), si può creare un tassello
che lascia trasparire certe parti dell'area sottostante. (altro)
sharpen(): Image
Aumenta la nitidezza dell'immagine.
Richiede la Bundled GD extension, quindi potrebbe non funzionare ovunque.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Restituisce l'immagine come stringa.
La qualità della compressione è nell'intervallo 0–100 per JPEG (di norma 85), WEBP (di norma 80) e AVIF (di norma 30), e 0–9 per PNG (di norma 9).
trueColorToPalette(bool $dither, int $ncolors): void
Converte un'immagine truecolor in un'immagine a palette. (altro)
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Scrive nell'immagine il testo indicato. (altro)