Lavorare con le immagini

La classe Nette\Utils\Image semplifica la manipolazione delle immagini, come il ridimensionamento, il ritaglio, l'applicazione di nitidezza, il disegno o l'unione di più immagini.

PHP dispone di un'ampia gamma di funzioni per la manipolazione delle immagini. Ma la loro API non è molto comoda. Non sarebbe Nette Framework se non avesse proposto un'API sexy.

Installazione:

composer require nette/utils

Tutti gli esempi presuppongono la creazione di un alias:

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

Creazione di un'immagine

Creiamo una nuova immagine true color, ad esempio con dimensioni 100×200:

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

Opzionalmente, è possibile specificare il colore di sfondo (il predefinito è nero):

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

Oppure carichiamo l'immagine da un file:

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

Salvataggio dell'immagine

L'immagine può essere salvata in un file:

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

Possiamo specificare la qualità della compressione nell'intervallo 0..100 per JPEG (predefinito 85), WEBP (predefinito 80) e AVIF (predefinito 30) e 0..9 per PNG (predefinito 9):

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

Se il formato non è chiaro dall'estensione del file, può essere specificato con una costante:

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

L'immagine può essere scritta in una variabile invece che su disco:

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

o inviata 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, tuttavia devono essere supportati anche dalla vostra versione di PHP, cosa che potete verificare con la funzione isTypeSupported(). Le animazioni non sono supportate.

Il formato è rappresentato dalle costanti ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF e ImageType::BMP.

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

Avete bisogno di rilevare il formato dell'immagine durante il caricamento? Il metodo lo restituisce nel secondo parametro:

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

Il rilevamento stesso senza caricare l'immagine viene eseguito da Image::detectTypeFromFile().

Ridimensionamento

Un'operazione comune è il ridimensionamento delle dimensioni dell'immagine. Le dimensioni attuali vengono restituite dai metodi getWidth() e getHeight().

Per il ridimensionamento si utilizza il metodo resize(). Esempio di ridimensionamento proporzionale in modo che non superi le dimensioni di 500×300 pixel (o la larghezza sarà esattamente 500 px o l'altezza sarà esattamente 300 px, una delle dimensioni viene calcolata in modo da mantenere il rapporto d'aspetto):

$image->resize(500, 300);

È possibile specificare solo una dimensione e l'altra verrà calcolata:

$image->resize(500, null); // larghezza 500px, l'altezza viene calcolata

$image->resize(null, 300); // la larghezza viene calcolata, altezza 300px

Qualsiasi dimensione può essere specificata anche in percentuale:

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

Il comportamento di resize può essere influenzato dai seguenti flag. Tutti tranne Image::Stretch mantengono il rapporto d'aspetto.

Flag Descrizione
Image::OrSmaller (predefinito) le dimensioni risultanti saranno minori o uguali alle dimensioni richieste
Image::OrBigger riempie (e eventualmente supera in una dimensione) l'area di destinazione
Image::Cover riempie l'area di destinazione e ritaglia ciò che supera
Image::ShrinkOnly solo ridimensionamento (impedisce l'ingrandimento di un'immagine piccola)
Image::Stretch non mantenere il rapporto d'aspetto

I flag vengono specificati come terzo argomento della funzione:

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

I flag possono essere combinati:

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

Le immagini possono essere capovolte verticalmente o orizzontalmente specificando una delle dimensioni (o entrambe) come numero negativo:

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

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

$flipped = $image->resize(-125, 500); // ridimensiona e capovolge orizzontalmente

Dopo aver ridimensionato l'immagine, è possibile migliorarne l'aspetto con una leggera applicazione di nitidezza:

$image->sharpen();

Ritaglio

Per il ritaglio si utilizza il metodo crop():

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

Similmente a resize(), tutti i valori possono essere specificati in percentuale. Le percentuali per $left e $top vengono calcolate dallo spazio rimanente, in modo simile alla proprietà CSS background-position:

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

L'immagine può anche essere ritagliata automaticamente, ad esempio per ritagliare i bordi neri:

$image->cropAuto(IMG_CROP_BLACK);

Il metodo cropAuto() è un sostituto orientato agli oggetti della funzione imagecropauto(), nella sua documentazione troverete ulteriori informazioni.

Colori

Il metodo ImageColor::rgb() consente di definire un colore utilizzando i valori di rosso, verde e blu (RGB). Opzionalmente, è possibile specificare anche un valore di trasparenza nell'intervallo da 0 (completamente trasparente) a 1 (completamente opaco), proprio come in CSS.

$color = ImageColor::rgb(255, 0, 0); // Rosso
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Blu semitrasparente

Il metodo ImageColor::hex() consente di definire un colore utilizzando il formato esadecimale, simile a CSS. Supporta i formati #rgb, #rrggbb, #rgba e #rrggbbaa:

$color = ImageColor::hex("#F00"); // Rosso
$transparentGreen = ImageColor::hex("#00FF0080"); // Verde semitrasparente

I colori possono essere utilizzati in altri metodi, come ellipse(), fill(), ecc.

Disegno e modifiche

Puoi disegnare, puoi scrivere, ma non strappare le foglie. Sono disponibili tutte le funzioni PHP per lavorare con le immagini, vedi #Panoramica dei metodi, ma in un involucro orientato agli oggetti:

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

Poiché le funzioni PHP per disegnare rettangoli non sono pratiche a causa della specificazione delle coordinate, la classe Image offre le loro sostituzioni sotto forma delle funzioni rectangleWH() e filledRectangleWH().

Unione di più immagini

È facile inserire un'altra immagine in un'immagine:

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

// le coordinate possono essere specificate nuovamente in percentuale
$blank->place($logo, '80%', '80%'); // inseriamo vicino all'angolo inferiore destro

Durante l'inserimento, il canale alfa viene rispettato, inoltre possiamo influenzare la trasparenza dell'immagine inserita (creiamo la cosiddetta filigrana):

$blank->place($image, '80%', '80%', 25); // la trasparenza è del 25 %

Un'API del genere è davvero un piacere da usare!

Panoramica dei metodi

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

Crea una nuova immagine true color delle dimensioni specificate. Il colore predefinito è nero.

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

Carica un'immagine da un file e restituisce il suo tipo in $detectedFormat.

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

Carica un'immagine da una stringa e restituisce il suo tipo in $detectedFormat.

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 specificato.

static typeToMimeType (int $type)string

Restituisce il tipo mime per il tipo specificato.

static extensionToType (string $extension)int

Restituisce il tipo dell'immagine in base all'estensione del file.

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

Restituisce il tipo dell'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 da una stringa e nei parametri $width e $height anche le sue dimensioni.

static isTypeSupported (int $type)bool

Verifica se il tipo di immagine specificato è 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 circonda il testo in un determinato carattere e dimensione. Restituisce un array associativo contenente le chiavi left, top, width, height. Il margine sinistro può essere anche negativo se il testo inizia con un kerning sinistro.

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

Restituisce un'immagine contenente l'immagine src trasformata affinemente utilizzando un'area di ritaglio opzionale. (maggiori informazioni).

affineMatrixConcat (array $m1, array $m2)array

Restituisce la concatenazione di due matrici di trasformazione affine, utile se più trasformazioni devono essere applicate alla stessa immagine contemporaneamente. (maggiori informazioni)

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

Restituisce una matrice di trasformazione affine. (maggiori informazioni)

alphaBlending (bool $on)void

Consente due diverse modalità di disegno nelle immagini truecolor. In modalità di fusione, il componente del canale alfa del colore utilizzato in tutte le funzioni di disegno, come setPixel(), determina in che misura il colore sottostante dovrebbe trasparire. Di conseguenza, il colore esistente in quel punto viene automaticamente miscelato con il colore disegnato e il risultato viene salvato nell'immagine. Il pixel risultante è opaco. In modalità senza fusione, il colore disegnato viene copiato letteralmente con le informazioni del canale alfa e sostituisce il pixel di destinazione. La modalità di fusione non è disponibile quando si disegna su immagini a tavolozza. (maggiori informazioni)

antialias (bool $on): void

Attiva il disegno di linee e poligoni con antialiasing. Non supporta i canali alfa. Funziona solo con immagini truecolor.

L'uso di primitive con antialiasing con un colore di sfondo trasparente può portare a risultati imprevisti. Il metodo di fusione utilizza il colore di sfondo come tutti gli altri colori. (maggiori informazioni)

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

Disegna un arco di cerchio centrato nelle coordinate specificate. (maggiori informazioni)

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

Restituisce un identificatore di colore che rappresenta il colore composto dai componenti RGB specificati. Deve essere chiamata per creare ogni colore da utilizzare nell'immagine. (maggiori informazioni)

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

Si comporta come colorAllocate() con l'aggiunta del parametro di trasparenza $alpha. (maggiori informazioni)

colorAt (int $x, int $y)int

Restituisce l'indice del colore del pixel nella posizione specificata nell'immagine. Se l'immagine è truecolor, questa funzione restituisce il valore RGB di quel pixel come intero. Utilizzare lo spostamento di bit e il mascheramento di bit per accedere ai valori separati dei componenti rosso, verde e blu: (maggiori informazioni)

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

Restituisce l'indice del colore nella tavolozza dell'immagine che è “più vicino” al valore RGB specificato. La “distanza” tra il colore desiderato e ogni colore nella tavolozza viene calcolata come se i valori RGB rappresentassero punti in uno spazio tridimensionale. (maggiori informazioni)

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

Restituisce l'indice del colore nella tavolozza dell'immagine che è “più vicino” al valore RGB specificato e al livello $alpha. (maggiori informazioni)

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

Ottiene l'indice del colore che ha la tonalità, il bianco e il nero più vicini al colore specificato. (maggiori informazioni)

colorDeallocate (int $color)void

Dealloca un colore precedentemente allocato con colorAllocate() o colorAllocateAlpha(). (maggiori informazioni)

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

Restituisce l'indice del colore specificato nella tavolozza dell'immagine. (maggiori informazioni)

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

Restituisce l'indice del colore specificato + alfa nella tavolozza dell'immagine. (maggiori informazioni)

colorMatch (Image $image2)void

Adatta i colori della tavolozza alla seconda immagine. (maggiori informazioni)

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

Restituisce l'indice del colore per il colore richiesto, sia il colore esatto che l'alternativa più vicina possibile. (maggiori informazioni)

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

Restituisce l'indice del colore per il colore richiesto, sia il colore esatto che l'alternativa più vicina possibile. (maggiori informazioni)

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

Imposta l'indice specificato nella tavolozza sul colore specificato. (maggiori informazioni)

colorsForIndex (int $index)array

Ottiene il colore dell'indice specificato. (maggiori informazioni)

colorsTotal(): int

Restituisce il numero di colori nella tavolozza dell'immagine. (maggiori informazioni)

colorTransparent (?int $color=null)int

Ottiene o imposta il colore trasparente nell'immagine. (maggiori informazioni)

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

Applica una matrice di convoluzione all'immagine, utilizzando il coefficiente e l'offset specificati. (maggiori informazioni)

Richiede la presenza dell'estensione Bundled GD, quindi potrebbe non funzionare ovunque.

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

Copia una parte di $src sull'immagine iniziando dalle coordinate $srcX, $srcY con larghezza $srcW e altezza $srcH. La parte definita verrà copiata nelle coordinate $dstX e $dstY. (maggiori informazioni)

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

Copia una parte di $src sull'immagine iniziando dalle coordinate $srcX, $srcY con larghezza $srcW e altezza $srcH. La parte definita verrà copiata nelle coordinate $dstX e $dstY. (maggiori informazioni)

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

Copia una parte di $src sull'immagine iniziando dalle coordinate $srcX, $srcY con larghezza $srcW e altezza $srcH. La parte definita verrà copiata nelle coordinate $dstX e $dstY.

Questa funzione è identica a copyMerge() con l'eccezione che durante la fusione conserva la tonalità della sorgente convertendo i pixel di destinazione in scala di grigi prima dell'operazione di copia. (maggiori informazioni)

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 su un'altra immagine, interpolando uniformemente i valori dei pixel, in modo che in particolare la riduzione delle dimensioni dell'immagine mantenga comunque una grande chiarezza.

In altre parole, copyResampled() prende un'area rettangolare da $src di larghezza $srcW e altezza $srcH nella posizione ($srcX, $srcY) e la posiziona in un'area rettangolare dell'immagine di larghezza $dstW e altezza $dstH nella posizione ($dstX, $dstY).

Se le coordinate di origine e destinazione, la larghezza e l'altezza differiscono, viene eseguito un corrispondente allungamento o restringimento del frammento dell'immagine. Le coordinate si riferiscono all'angolo superiore sinistro. Questa funzione può essere utilizzata per copiare aree all'interno della stessa immagine, ma se le aree si sovrappongono, i risultati non saranno prevedibili. (maggiori informazioni)

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 su un'altra immagine. In altre parole, copyResized() ottiene un'area rettangolare da $src di larghezza $srcW e altezza $srcH nella posizione ($srcX, $srcY) e la posiziona in un'area rettangolare dell'immagine di larghezza $dstW e altezza $dstH nella posizione ($dstX, $dstY).

Se le coordinate di origine e destinazione, la larghezza e l'altezza differiscono, viene eseguito un corrispondente allungamento o restringimento del frammento dell'immagine. Le coordinate si riferiscono all'angolo superiore sinistro. Questa funzione può essere utilizzata per copiare aree all'interno della stessa immagine, ma se le aree si sovrappongono, i risultati non saranno prevedibili. (maggiori informazioni)

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

Ritaglia l'immagine nell'area rettangolare specificata. Le dimensioni possono essere specificate come interi in pixel o stringhe in percentuale (ad esempio '50%').

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

Ritaglia automaticamente l'immagine secondo la $mode specificata. (maggiori informazioni)

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

Disegna un'ellisse centrata nelle coordinate specificate. (maggiori informazioni)

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

Riempie un'area iniziando dalle coordinate specificate (in alto a sinistra è 0, 0) con il $color specificato. (maggiori informazioni)

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 specificate. (maggiori informazioni)

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

Disegna un'ellisse centrata nelle coordinate specificate. (maggiori informazioni)

filledPolygon (array $points, ImageColor $color)void

Crea un poligono riempito nell'immagine. (maggiori informazioni)

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

Crea un rettangolo riempito con $color nell'immagine iniziando dal punto $x1 & $y1 e terminando al punto $x2 & $y2. Il punto 0, 0 è l'angolo superiore sinistro dell'immagine. (maggiori informazioni)

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

Crea un rettangolo riempito con $color nell'immagine iniziando dal punto $left & $top con larghezza $width e altezza $height. Il punto 0, 0 è l'angolo superiore sinistro dell'immagine.

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

Esegue un riempimento il cui colore del bordo è definito da $border. Il punto di partenza del riempimento è $x, $y (in alto a sinistra è 0, 0) e l'area viene riempita con il colore $color. (maggiori informazioni)

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

Applica il filtro $filtertype specificato all'immagine. (maggiori informazioni)

flip (int $mode): void

Capovolge l'immagine utilizzando la $mode specificata. (maggiori informazioni)

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

Scrive il testo nell'immagine. (maggiori informazioni)

gammaCorrect (float $inputgamma, float $outputgamma)void

Applica la correzione gamma all'immagine rispetto alla gamma di input e output. (maggiori informazioni)

getClip(): array

Restituisce il ritaglio corrente, ovvero l'area oltre la quale non verranno disegnati pixel. (maggiori informazioni)

getHeight(): int

Restituisce l'altezza dell'immagine.

getImageResource(): resource|GdImage

Restituisce la risorsa originale.

getWidth(): int

Restituisce la larghezza dell'immagine.

interlace (?int $interlace=null)int

Attiva o disattiva la modalità interlacciata. Se la modalità interlacciata è impostata e l'immagine viene salvata come JPEG, verrà salvata come JPEG progressivo. (maggiori informazioni)

isTrueColor(): bool

Verifica se l'immagine è truecolor. (maggiori informazioni)

layerEffect (int $effect)void

Imposta il flag di fusione alfa per utilizzare gli effetti di layering. (maggiori informazioni)

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

Disegna una linea tra i due punti specificati. (maggiori informazioni)

openPolygon (array $points, ImageColor $color)void

Disegna un poligono aperto sull'immagine. A differenza di polygon(), non viene disegnata alcuna linea tra l'ultimo e il primo punto. (maggiori informazioni)

paletteCopy (Image $source)void

Copia la tavolozza da $source all'immagine. (maggiori informazioni)

paletteToTrueColor(): void

Converte un'immagine basata su tavolozza in un'immagine a colori pieni. (maggiori informazioni)

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

Copia $image nell'immagine alle coordinate $left e $top. Le coordinate possono essere specificate come interi in pixel o stringhe in percentuale (ad esempio '50%').

polygon (array $points, ImageColor $color)void

Crea un poligono nell'immagine. (maggiori informazioni)

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

Crea un rettangolo alle coordinate specificate. (maggiori informazioni)

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

Crea un rettangolo alle coordinate specificate.

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

Ridimensiona l'immagine, maggiori informazioni. Le dimensioni possono essere specificate come interi in pixel o stringhe in percentuale (ad esempio '50%').

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

Imposta o restituisce la risoluzione dell'immagine in DPI (punti per pollice). Se non viene specificato nessuno dei parametri opzionali, la risoluzione corrente viene restituita come array indicizzato. Se viene specificato solo $resX, la risoluzione orizzontale e verticale viene impostata su questo valore. Se vengono specificati entrambi i parametri opzionali, la risoluzione orizzontale e verticale viene impostata su questi valori.

La risoluzione viene utilizzata solo come meta informazione quando le immagini vengono lette e scritte in formati che supportano questo tipo di informazioni (attualmente PNG e JPEG). Non influisce su alcuna operazione di disegno. La risoluzione predefinita delle nuove immagini è 96 DPI. (maggiori informazioni)

rotate (float $angle, int $backgroundColor)Image

Ruota l'immagine utilizzando l'$angle specificato in gradi. Il centro di rotazione è il centro dell'immagine e l'immagine ruotata può avere dimensioni diverse dall'immagine originale. (maggiori informazioni)

Richiede la presenza dell'estensione Bundled GD, 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 (predefinito 85), WEBP (predefinito 80) e AVIF (predefinito 30) e 0..9 per PNG (predefinito 9). Se il tipo non è chiaro dall'estensione del file, è possibile specificarlo utilizzando una delle costanti ImageType.

saveAlpha (bool $saveflag)void

Imposta il flag che indica se conservare le informazioni complete del canale alfa durante il salvataggio delle immagini PNG (a differenza della trasparenza a colore singolo).

L'alfablending deve essere disattivato (alphaBlending(false)) affinché il canale alfa venga mantenuto in primo luogo. (maggiori informazioni)

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

Scala l'immagine utilizzando l'algoritmo di interpolazione specificato. (maggiori informazioni)

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

Invia l'immagine al browser.

La qualità della compressione è nell'intervallo 0..100 per JPEG (predefinito 85), WEBP (predefinito 80) e AVIF (predefinito 30) e 0..9 per PNG (predefinito 9).

setBrush (Image $brush)void

Imposta l'immagine del pennello da utilizzare in tutte le funzioni di disegno di linee (ad esempio line() e polygon()) quando si disegna con i colori speciali IMG_COLOR_BRUSHED o IMG_COLOR_STYLEDBRUSHED. (maggiori informazioni)

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

Imposta il ritaglio corrente, ovvero l'area oltre la quale non verranno disegnati pixel. (maggiori informazioni)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Imposta il metodo di interpolazione, che influisce sui metodi rotate() e affine(). (maggiori informazioni)

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

Disegna un pixel alle coordinate specificate. (maggiori informazioni)

setStyle (array $style)void

Imposta lo stile da utilizzare per tutte le funzioni di disegno di linee (ad esempio line() e polygon()) quando si disegna con il colore speciale IMG_COLOR_STYLED o linee di immagini con il colore IMG_COLOR_STYLEDBRUSHED. (maggiori informazioni)

setThickness (int $thickness)void

Imposta lo spessore delle linee durante il disegno di rettangoli, poligoni, archi, ecc. a $thickness pixel. (maggiori informazioni)

setTile (Image $tile)void

Imposta l'immagine della piastrella da utilizzare in tutte le funzioni di riempimento delle regioni (ad esempio fill() e filledPolygon()) quando si riempie con il colore speciale IMG_COLOR_TILED.

Una piastrella è un'immagine utilizzata per riempire un'area con un motivo ripetuto. Qualsiasi immagine può essere utilizzata come piastrella e impostando l'indice del colore trasparente dell'immagine della piastrella con colorTransparent() è possibile creare una piastrella in cui alcune parti dell'area sottostante traspaiono. (maggiori informazioni)

sharpen(): Image

Applica nitidezza all'immagine.

Richiede la presenza dell'estensione Bundled GD, quindi potrebbe non funzionare ovunque.

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

Salva l'immagine in una stringa.

La qualità della compressione è nell'intervallo 0..100 per JPEG (predefinito 85), WEBP (predefinito 80) e AVIF (predefinito 30) e 0..9 per PNG (predefinito 9).

trueColorToPalette (bool $dither, int $ncolors)void

Converte un'immagine truecolor in una a tavolozza. (maggiori informazioni)

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

Scrive il testo specificato nell'immagine. (maggiori informazioni)

versione: 4.0