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)

versione: 4.x