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)