Funzioni di immagine
La classe Nette\Utils\Image semplifica la manipolazione delle immagini, come il ridimensionamento, il ritaglio, la nitidezza, il disegno o la fusione di più immagini.
PHP dispone di un'ampia serie di funzioni per la manipolazione delle immagini. Ma l'API non è molto bella. Non sarebbe un Neat Framework a proporre un'API sexy.
Installazione:
composer require nette/utils
Gli esempi seguenti presuppongono che sia stato definito il seguente alias di classe:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Creare un'immagine
Creeremo una nuova immagine a colori reali, ad esempio con dimensioni 100×200:
$image = Image::fromBlank(100, 200);
Opzionalmente, è possibile specificare un colore di sfondo (l'impostazione predefinita è il nero):
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Oppure si carica l'immagine da un file:
$image = Image::fromFile('nette.jpg');
Salvare l'immagine
L'immagine può essere salvata in un file:
$image->save('resampled.jpg');
È possibile specificare la qualità di compressione nell'intervallo 0..100 per JPEG (valore predefinito 85), WEBP (valore predefinito 80) e AVIF (valore predefinito 30) e 0..9 per PNG (valore predefinito 9):
$image->save('resampled.jpg', 80); // JPEG, qualità 80%
Se il formato non è evidente 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, quality 80%
o inviare direttamente al browser con l'intestazione HTTP appropriata Content-Type
:
// invia l'intestazione 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 versione di PHP in uso, il che può essere verificato 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);
È necessario rilevare il formato di un'immagine al momento del caricamento? Il metodo lo restituisce nel secondo parametro:
$image = Image::fromFile('nette.jpg', $type);
Il rilevamento effettivo senza caricare l'immagine viene eseguito da Image::detectTypeFromFile()
.
Ridimensionamento dell'immagine
Un'operazione comune è il ridimensionamento di un'immagine. Le dimensioni correnti sono restituite dai metodi
getWidth()
e getHeight()
.
Per il ridimensionamento viene utilizzato il metodo resize()
. Questo è un esempio di modifica proporzionale delle
dimensioni, in modo che non superi i 500×300 pixel (o la larghezza sarà esattamente 500px o l'altezza sarà esattamente
300px, una delle dimensioni è calcolata per mantenere il rapporto di aspetto):
$image->resize(500, 300);
È possibile impostare solo una dimensione e la seconda verrà calcolata:
$image->resize(500, null); // larghezza 500px, altezza auto
$image->resize(null, 300); // larghezza auto, altezza 300px
Qualsiasi dimensione può essere specificata in percentuale:
$image->resize('75%', 300); // 75% × 300px
Il comportamento di resize
può essere influenzato dai seguenti flag. Tutti, tranne Image::Stretch
,
conservano il rapporto d'aspetto.
Flag | Descrizione |
---|---|
Image::OrSmaller (default) |
le dimensioni risultanti saranno minori o uguali a quelle specificate |
Image::OrBigger |
riempie l'area di destinazione ed eventualmente la estende in una direzione |
Image::Cover |
riempie l'intera area e taglia ciò che la supera |
Image::ShrinkOnly |
si limita a ridimensionare (non estende un'immagine piccola) |
Image::Stretch |
non mantiene il rapporto d'aspetto |
I flag vengono passati 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%'); // flip verticale
$flipped = $image->resize('-100%', '-100%'); // ruota di 180°
$flipped = $image->resize(-125, 500); // ridimensionamento e capovolgimento orizzontale
Dopo aver ridotto l'immagine, possiamo migliorarla con la nitidezza:
$image->sharpen();
Ritaglio
Il metodo crop()
è utilizzato per le coltivazioni:
$image->crop($left, $top, $width, $height);
Come per resize()
, tutti i valori possono essere specificati in percentuale. Le percentuali per
$left
e $top
sono 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 ritagliando i bordi neri:
$image->cropAuto(IMG_CROP_BLACK);
Il metodo cropAuto()
è un oggetto che incapsula la funzione imagecropauto()
; per ulteriori
informazioni, consultare la relativa documentazione.
Colori
Il metodo ImageColor::rgb()
consente di definire un colore utilizzando i valori rosso, verde e blu (RGB).
Opzionalmente, si può anche specificare un valore di trasparenza che va da 0 (completamente trasparente) a 1 (completamente
opaco), proprio come nei CSS.
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
Il metodo ImageColor::hex()
consente di definire un colore utilizzando il formato esadecimale, come nei CSS.
Supporta i formati #rgb
, #rrggbb
, #rgba
e #rrggbbaa
:
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
I colori possono essere utilizzati in altri metodi, come ellipse()
, fill()
, ecc.
Disegno e modifica
Si può disegnare, si può scrivere, si possono usare tutte le funzioni PHP per la manipolazione delle 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 i rettangoli sono poco pratiche a causa della necessità di specificare le coordinate,
la classe Image
le sostituisce con le funzioni rectangleWH() e filledRectangleWH().
Unire più immagini
È possibile inserire facilmente un'altra immagine nell'immagine:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// le coordinate possono essere impostate anche in percentuale
$blank->place($logo, '80%', '80%'); // vicino all'angolo destro in basso
Quando si incolla, il canale alfa viene rispettato; inoltre, possiamo influenzare la trasparenza dell'immagine inserita (creeremo una cosiddetta filigrana):
$blank->place($image, '80%', '80%', 25); // la trasparenza è del 25%.
Questa API è davvero un piacere da usare, non è vero?
Panoramica dei metodi
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Crea una nuova immagine a colori reali delle dimensioni indicate. Il colore predefinito è il nero.
static fromFile(string $file, int &$detectedFormat=null): Image
Legge un'immagine da un file e ne restituisce il tipo in $detectedFormat
.
static fromString(string $s, int &$detectedFormat=null): Image
Legge un'immagine da una stringa e ne restituisce il 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 dato.
static typeToMimeType(int $type): string
Restituisce il tipo di mime per il tipo dato.
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 di 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 di immagine dalla stringa e nei parametri $width
e
$height
anche le sue dimensioni.
static isTypeSupported(int $type): bool
Determina se il tipo di immagine dato è supportato.
static getSupportedTypes(): array
Restituisce un array di tipi di immagine supportati (costanti ImageType::XXX
).
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 font e in una dimensione specificati. Restituisce un array
associativo contenente le chiavi left
, top
, width
, height
. Il margine sinistro
può essere negativo se il testo inizia con una sporgenza a sinistra.
affine(array $affine, ?array $clip=null): Image
Restituisce un'immagine contenente l'immagine src trasformata affine, utilizzando un'area di ritaglio opzionale. (altro).
affineMatrixConcat(array $m1, array $m2): array
Restituisce la concatenazione di due matrici di trasformazione affine, utile se si vogliono applicare più trasformazioni alla stessa immagine in una sola volta. (altro)
affineMatrixGet(int $type, ?mixed $options=null): array
Restituisce una matrice di trasformazione affine. (altro)
alphaBlending(bool $on): void
Consente di disegnare in due modi diversi sulle immagini truecolor. In modalità di fusione, la componente del canale alfa del
colore fornito a tutte le funzioni di disegno, come ad esempio setPixel()
, determina la quantità di colore
sottostante da lasciar trasparire. Di conseguenza, fonde automaticamente il colore esistente in quel punto con il colore del
disegno e memorizza il risultato nell'immagine. Il pixel risultante è opaco. In modalità non sfumata, il colore del disegno
viene copiato letteralmente con le informazioni del suo canale alfa, sostituendo il pixel di destinazione. La modalità di fusione
non è disponibile quando si disegna sulle immagini della tavolozza. (altro)
antialias(bool $on): void
Attivare i metodi di disegno rapido antialias per linee e poligoni cablati. Non supporta i componenti alfa. Funziona con un'operazione di miscelazione diretta. Funziona solo con immagini in vero colore.
L'uso di primitive con antialias e colore di sfondo trasparente può portare a risultati inaspettati. Il metodo blend utilizza il colore di sfondo come qualsiasi altro colore. La mancanza del supporto per i componenti alfa non consente un metodo di antialiasing basato su alfa. (altro)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Disegna un arco di cerchio centrato sulle coordinate date. (altro)
colorAllocate(int $red, int $green, int $blue): int
Restituisce un identificatore di colore che rappresenta il colore composto dalle componenti RGB indicate. Deve essere richiamato per creare ogni colore da utilizzare nell'immagine. (altro)
colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int
Si comporta in modo identico a colorAllocate()
con l'aggiunta del parametro di trasparenza $alpha
.
(altro)
colorAt(int $x, int $y): int
Restituisce l'indice del colore del pixel nella posizione specificata dell'immagine. Se l'immagine è a colori, questa funzione restituisce il valore RGB del pixel come numero intero. Utilizzare il bitshifting e il mascheramento per accedere ai valori distinti dei componenti rosso, verde e blu: (continua)
colorClosest(int $red, int $green, int $blue): int
Restituisce l'indice del colore nella tavolozza dell'immagine più „vicino“ al valore RGB specificato. La „distanza“ tra il colore desiderato e ciascun colore della tavolozza viene calcolata come se i valori RGB rappresentassero dei punti nello spazio tridimensionale. (altro)
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce l'indice del colore nella tavolozza dell'immagine più „vicino“ al valore RGB e al livello $alpha
specificati. (altro)
colorClosestHWB(int $red, int $green, int $blue): int
Ottiene l'indice del colore che ha la tinta, il bianco e il nero più vicini al colore dato. (altro)
colorDeallocate(int $color): void
Disalloca un colore precedentemente assegnato con colorAllocate()
o colorAllocateAlpha()
. (altro)
colorExact(int $red, int $green, int $blue): int
Restituisce l'indice del colore specificato nella tavolozza dell'immagine. (altro)
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce l'indice del colore+alfa specificato nella tavolozza dell'immagine. (altro)
colorMatch(Image $image2): void
Rende i colori della versione palette di un'immagine più simili alla versione a colori reali. (altro)
colorResolve(int $red, int $green, int $blue): int
Restituisce un indice di colore per un colore richiesto, il colore esatto o l'alternativa più vicina possibile. (altro)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
Restituisce un indice di colore per un colore richiesto, il colore esatto o l'alternativa più vicina possibile. (altro)
colorSet(int $index, int $red, int $green, int $blue): void
Imposta l'indice specificato nella tavolozza al colore specificato. (altro)
colorsForIndex(int $index): array
Ottiene il colore per un indice specificato. (altro)
colorsTotal(): int
Restituisce il numero di colori in una tavolozza di immagini (more).
colorTransparent(?int $color=null): int
Ottiene o imposta il colore trasparente dell'immagine. (altro)
convolution(array $matrix, float $div, float $offset): void
Applica una matrice di convoluzione all'immagine, utilizzando il coefficiente e l'offset indicati. (altro)
Richiede l'estensione Bundled GD, quindi non è sicuro che funzioni ovunque.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
Copia una parte di $src
sull'immagine a partire dalle coordinate $srcX
, $srcY
con una
larghezza di $srcW
e un'altezza di $srcH
. La porzione definita verrà copiata sulle coordinate
$dstX
e $dstY
. (altro)
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 a partire dalle coordinate $srcX
, $srcY
con una
larghezza di $srcW
e un'altezza di $srcH
. La porzione definita verrà copiata sulle coordinate
$dstX
e $dstY
. (altro)
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 a partire dalle coordinate $srcX
, $srcY
con una
larghezza di $srcW
e un'altezza di $srcH
. La porzione definita verrà copiata sulle coordinate
$dstX
e $dstY
.
Questa funzione è identica a copyMerge()
, tranne che per il fatto che durante la fusione preserva la tonalità
dell'origine convertendo i pixel di destinazione in scala di grigi 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 fluido i valori dei pixel in modo che, in particolare, la riduzione delle dimensioni di un'immagine conservi una grande chiarezza.
In altre parole, copyResampled()
prenderà un'area rettangolare da $src
di larghezza
$srcW
e altezza $srcH
in posizione ($srcX
,$srcY
) e la collocherà in un'area
rettangolare dell'immagine di larghezza $dstW
e altezza $dstH
in posizione
($dstX
,$dstY
).
Se le coordinate di origine e di destinazione, la larghezza e l'altezza differiscono, verrà eseguito un allungamento o un restringimento appropriato del frammento di immagine. Le coordinate si riferiscono all'angolo superiore sinistro. Questa funzione può essere utilizzata per copiare regioni all'interno della stessa immagine, ma se le regioni si sovrappongono i risultati saranno 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()
prenderà
un'area rettangolare da $src
di larghezza $srcW
e altezza $srcH
in posizione
($srcX
,$srcY
) e la collocherà in un'area rettangolare dell'immagine di larghezza $dstW
e
altezza $dstH
in posizione ($dstX
,$dstY
).
Se le coordinate di origine e di destinazione, la larghezza e l'altezza differiscono, verrà eseguito un allungamento o un restringimento appropriato del frammento di immagine. Le coordinate si riferiscono all'angolo superiore sinistro. Questa funzione può essere utilizzata per copiare regioni all'interno della stessa immagine, ma se le regioni si sovrappongono i risultati saranno imprevedibili. (altro)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Ritaglia un'immagine nell'area rettangolare indicata. Le dimensioni possono essere passate come numeri interi in pixel o come
stringhe in percentuale (ad esempio '50%'
).
cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Ritaglia automaticamente un'immagine in base all'indirizzo $mode
. (altro)
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Disegna un'ellisse centrata sulle coordinate specificate. (altro)
fill(int $x, int $y, ImageColor $color): void
Esegue un riempimento a tappeto a partire dalla coordinata data (in alto a sinistra è 0, 0) con il dato $color
nell'immagine. (altro)
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Disegna un arco parziale centrato nella coordinata specificata dell'immagine. (altro)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Disegna un'ellisse centrata sulla coordinata specificata nell'immagine. (altro)
filledPolygon(array $points, ImageColor $color): void
Crea un poligono riempito nell'immagine $. (altro)
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Crea un rettangolo riempito con $color
nell'immagine che inizia con $x1
e $y1
e termina
con $x2
e $y2
. Il punto 0, 0 è l'angolo superiore sinistro dell'immagine. (altro)
filledRectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Crea un rettangolo riempito con $color
nell'immagine a partire dai punti $left
e $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 a tappeto il cui colore del bordo è definito da $border
. Il punto di partenza per il
riempimento è $x
, $y
(in alto a sinistra 0, 0) e la regione viene riempita con il colore
$color
. (altro)
filter(int $filtertype, int …$args): void
Applica il filtro indicato $filtertype
all'immagine. (altro)
flip(int $mode): void
Capovolge l'immagine utilizzando l'indirizzo $mode
. (altro)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Scrivere il testo nell'immagine. (altro)
gammaCorrect(float $inputgamma, float $outputgamma): void
Applica la correzione gamma all'immagine data una gamma di ingresso e una di uscita. (altro)
getClip(): array
Recupera il rettangolo di ritaglio corrente, cioè l'area oltre la quale non verranno disegnati pixel. (altro)
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 il bit di interlacciamento. Se il bit di interlacciamento è impostato e l'immagine viene utilizzata come immagine JPEG, l'immagine viene creata come JPEG progressivo. (altro)
isTrueColor(): bool
Trova se l'immagine è un colore reale. (altro)
layerEffect(int $effect): void
Impostare il flag di fusione alfa per utilizzare gli effetti di stratificazione. (altro)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Disegna una linea tra i due punti dati. (altro)
openPolygon(array $points, ImageColor $color): void
Disegna un poligono aperto sull'immagine. Contrariamente a polygon()
, non viene tracciata una linea tra l'ultimo e
il primo punto. (altro)
paletteCopy(Image $source): void
Copia la tavolozza da $source
all'immagine. (altro)
paletteToTrueColor(): void
Converte un'immagine basata su una tavolozza, creata da funzioni come create()
, in un'immagine a colori reali,
come createtruecolor()
. (altro)
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
passate come numeri interi in pixel o come stringhe in percentuale (ad esempio '50%'
).
polygon(array $points, ImageColor $color): void
Crea un poligono nell'immagine. (altro)
rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Crea un rettangolo a partire dalle coordinate specificate. (altro)
rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Crea un rettangolo alle coordinate date.
resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Scala un'immagine, vedi maggiori informazioni. Le dimensioni possono essere passate come numeri
interi in pixel o come stringhe in percentuale (ad esempio '50%'
).
resolution(?int $resX=null, ?int $resY=null): mixed
Permette di impostare e ottenere la risoluzione di un'immagine in DPI (punti per pollice). Se non viene fornito nessuno dei
parametri opzionali, la risoluzione corrente viene restituita come array indicizzato. Se viene indicato solo $resX
,
la risoluzione orizzontale e verticale viene impostata su questo valore. Se vengono forniti entrambi i parametri opzionali, la
risoluzione orizzontale e verticale viene impostata rispettivamente su questi valori.
La risoluzione viene utilizzata come meta-informazione solo quando le immagini vengono lette e scritte in formati che supportano questo tipo di informazioni (attualmente PNG e JPEG). Non influisce su nessuna operazione di disegno. La risoluzione predefinita per le nuove immagini è 96 DPI. (altro)
rotate(float $angle, int $backgroundColor): Image
Ruota l'immagine utilizzando l'indirizzo $angle
in gradi. Il centro di rotazione è il centro dell'immagine e
l'immagine ruotata può avere dimensioni diverse dall'immagine originale. (altro)
Richiede l'estensione Bundled GD, quindi non è sicuro che funzioni ovunque.
save(string $file, ?int $quality=null, ?int $type=null): void
Salva un'immagine in un file.
La qualità di compressione è compresa nell'intervallo 0..100 per JPEG (valore predefinito 85), WEBP (valore predefinito 80)
e AVIF (valore predefinito 30) e 0..9 per PNG (valore predefinito 9). Se il tipo non è evidente dall'estensione del file, è
possibile specificarlo utilizzando una delle costanti ImageType
.
saveAlpha(bool $saveflag): void
Imposta il flag che determina se mantenere le informazioni del canale alfa completo (rispetto alla trasparenza di un solo colore) quando si salvano le immagini PNG.
L'alphablending deve essere disabilitato (alphaBlending(false)
) per mantenere il canale alfa. (altro)
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Ridimensiona un'immagine utilizzando l'algoritmo di interpolazione indicato. (altro)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Invia un'immagine al browser.
La qualità di compressione è compresa nell'intervallo 0..100 per JPEG (valore predefinito 85), WEBP (valore predefinito 80) e AVIF (valore predefinito 30) e 0..9 per PNG (valore predefinito 9).
setBrush(Image $brush): void
Imposta l'immagine del pennello da utilizzare da tutte le funzioni di disegno di 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 verranno disegnati pixel. (altro)
setInterpolation(int $method=IMG_BILINEAR_FIXED): void
Imposta il metodo di interpolazione che influisce sui metodi rotate()
e affine()
. (altro)
setPixel(int $x, int $y, ImageColor $color): void
Disegna un pixel alla coordinata specificata. (altro)
setStyle(array $style): void
Imposta lo stile da utilizzare da tutte le funzioni di disegno delle linee (come line()
e polygon()
)
quando si disegna con il colore speciale IMG_COLOR_STYLED o linee di immagini con colore IMG_COLOR_STYLEDBRUSHED. (altro)
setThickness(int $thickness): void
Imposta lo spessore delle linee tracciate quando si disegnano rettangoli, poligoni, archi ecc. a $thickness
pixel.
(altro)
setTile(Image $tile): void
Imposta l'immagine della piastrella da usare da tutte le funzioni di riempimento delle regioni (come 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. È possibile utilizzare qualsiasi
immagine come piastrella e, impostando l'indice del colore trasparente dell'immagine della piastrella con
colorTransparent()
, è possibile creare una piastrella che lascia trasparire alcune parti dell'area sottostante. (altro)
sharpen(): Image
Rende l'immagine un po' più nitida.
Richiede l'estensione Bundled GD, quindi non è sicuro che funzioni ovunque.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Emette un'immagine in stringa.
La qualità di compressione è compresa nell'intervallo 0..100 per JPEG (valore predefinito 85), WEBP (valore predefinito 80) e AVIF (valore predefinito 30) e 0..9 per PNG (valore predefinito 9).
trueColorToPalette(bool $dither, int $ncolors): void
Converte un'immagine truecolor in un'immagine palette. (altro)
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Scrive il testo dato nell'immagine. (altro)