Lucrul cu imagini

Clasa Nette\Utils\Image simplifică manipularea imaginilor, cum ar fi redimensionarea, decuparea, ascuțirea, desenarea sau combinarea mai multor imagini.

PHP dispune de un set extins de funcții pentru manipularea imaginilor, dar API-ul lor nu este foarte convenabil. Nette Framework vine, așa cum era de așteptat, cu un API elegant.

Instalare:

composer require nette/utils

Toate exemplele presupun că a fost creat un alias:

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

Crearea unei imagini

Creăm o nouă imagine true color, de exemplu, cu dimensiunile 100×200:

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

Opțional, se poate specifica culoarea de fundal (implicit este negru):

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

Sau încărcăm imaginea dintr-un fișier:

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

Salvarea imaginii

Imaginea poate fi salvată într-un fișier:

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

Putem specifica calitatea compresiei în intervalul 0..100 pentru JPEG (implicit 85), WEBP (implicit 80) și AVIF (implicit 30) și 0..9 pentru PNG (implicit 9):

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

Dacă formatul nu este evident din extensia fișierului, acesta poate fi specificat folosind o constantă:

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

Imaginea poate fi scrisă într-o variabilă în loc de pe disc:

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

sau trimisă direct în browser cu antetul HTTP Content-Type corespunzător:

// trimite antetul Content-Type: image/png
$image->send(ImageType::PNG);

Formate

Formatele acceptate sunt JPEG, PNG, GIF, WebP, AVIF și BMP, însă acestea trebuie să fie acceptate și de versiunea dvs. de PHP, lucru pe care îl puteți verifica cu funcția isTypeSupported(). Animațiile nu sunt acceptate.

Formatul este reprezentat de constantele ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF și ImageType::BMP.

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

Aveți nevoie să detectați formatul imaginii la încărcare? Metoda îl returnează în al doilea parametru:

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

Detecția formatului fără încărcarea imaginii este realizată de Image::detectTypeFromFile().

Redimensionare

O operație frecventă este modificarea dimensiunilor imaginii. Dimensiunile actuale sunt returnate de metodele getWidth() și getHeight().

Metoda resize() este utilizată pentru redimensionare. Exemplu de redimensionare proporțională astfel încât imaginea să nu depășească dimensiunile de 500×300 pixeli (fie lățimea va fi exact 500 px, fie înălțimea va fi exact 300 px, cealaltă dimensiune fiind calculată pentru a menține raportul de aspect):

$image->resize(500, 300);

Este posibil să specificați doar o dimensiune, iar cealaltă va fi calculată:

$image->resize(500, null); // lățime 500px, înălțimea se calculează

$image->resize(null, 300); // lățimea se calculează, înălțime 300px

Oricare dimensiune poate fi specificată și în procente:

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

Comportamentul metodei resize poate fi influențat de următoarele flag-uri. Toate, cu excepția Image::Stretch, mențin raportul de aspect.

Flag Descriere
Image::OrSmaller (implicit) dimensiunile rezultate vor fi mai mici sau egale cu dimensiunile solicitate
Image::OrBigger umple (și eventual depășește într-o dimensiune) suprafața țintă
Image::Cover umple suprafața țintă și decupează ceea ce depășește
Image::ShrinkOnly doar micșorare (previne mărirea unei imagini mici)
Image::Stretch nu menține raportul de aspect

Flag-urile sunt specificate ca al treilea argument al funcției:

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

Flag-urile pot fi combinate:

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

Imaginile pot fi răsturnate vertical sau orizontal specificând una dintre dimensiuni (sau ambele) ca număr negativ:

$flipped = $image->resize(null, '-100%'); // răsturnare verticală

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

$flipped = $image->resize(-125, 500); // redimensionare & răsturnare orizontală

După micșorarea imaginii, aspectul acesteia poate fi îmbunătățit printr-o ușoară ascuțire (sharpening):

$image->sharpen();

Decupare

Metoda crop() este utilizată pentru decupare:

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

Similar cu resize(), toate valorile pot fi specificate în procente. Procentele pentru $left și $top sunt calculate din spațiul rămas, similar proprietății CSS background-position:

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

Imaginea poate fi, de asemenea, decupată automat, de exemplu, pentru a elimina marginile negre:

$image->cropAuto(IMG_CROP_BLACK);

Metoda cropAuto() este un înlocuitor orientat pe obiecte pentru funcția imagecropauto(); puteți găsi mai multe informații în documentația sa.

Culori

Metoda ImageColor::rgb() vă permite să definiți o culoare folosind valorile roșu, verde și albastru (RGB). Opțional, puteți specifica și valoarea transparenței în intervalul 0 (complet transparent) până la 1 (complet opac), la fel ca în CSS.

$color = ImageColor::rgb(255, 0, 0); // Roșu
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Albastru semitransparent

Metoda ImageColor::hex() permite definirea unei culori folosind formatul hexazecimal, similar cu CSS. Acceptă formatele #rgb, #rrggbb, #rgba și #rrggbbaa:

$color = ImageColor::hex("#F00"); // Roșu
$transparentGreen = ImageColor::hex("#00FF0080"); // Verde semitransparent

Culorile pot fi utilizate în alte metode, cum ar fi ellipse(), fill() etc.

Desenare și modificări

Puteți desena, puteți scrie. Toate funcțiile PHP pentru lucrul cu imagini vă stau la dispoziție, vezi Prezentare generală a metodelor, dar într-o formă orientată pe obiecte:

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

Deoarece funcțiile PHP pentru desenarea dreptunghiurilor sunt nepractice din cauza modului de specificare a coordonatelor, clasa Image oferă înlocuitori sub forma funcțiilor rectangleWH() și filledRectangleWH().

Combinarea mai multor imagini

O altă imagine poate fi inserată cu ușurință în imaginea curentă:

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

// coordonatele pot fi specificate din nou în procente
$blank->place($logo, '80%', '80%'); // inserăm lângă colțul din dreapta jos

La inserare, canalul alfa este respectat; în plus, putem influența opacitatea imaginii inserate (creăm un așa-numit watermark):

$blank->place($image, '80%', '80%', 25); // opacitatea este de 25 %

Un astfel de API este cu adevărat o plăcere de utilizat!

Prezentare generală a metodelor

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

Creează o nouă imagine true color cu dimensiunile specificate. Culoarea implicită este negru.

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

Încarcă o imagine dintr-un fișier și returnează tipul acesteia în $detectedFormat.

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

Încarcă o imagine dintr-un șir și returnează tipul acesteia în $detectedFormat.

static rgb (int $red, int $green, int $blue, int $transparency=0)array

Această funcție a fost înlocuită de clasa ImageColor, vezi Culori.

static typeToExtension (int $type)string

Returnează extensia fișierului pentru tipul specificat.

static typeToMimeType (int $type)string

Returnează tipul MIME pentru tipul specificat.

static extensionToType (string $extension)int

Returnează tipul imaginii în funcție de extensia fișierului.

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

Returnează tipul imaginii și, în parametrii $width și $height, și dimensiunile acesteia.

static detectTypeFromString (string $s, int &$width=null, int &$height=null)?int

Returnează tipul imaginii dintr-un șir și, în parametrii $width și $height, și dimensiunile acesteia.

static isTypeSupported (int $type)bool

Verifică dacă tipul de imagine specificat este acceptat.

static getSupportedTypes(): array

Returnează un array de tipuri de imagine acceptate.

static calculateTextBox (string $text, string $fontFile, float $size, float $angle=0, array $options=[])array

Calculează dimensiunile dreptunghiului care înconjoară textul într-un anumit font și dimensiune. Returnează un array asociativ care conține cheile left, top, width, height. Marginea stângă poate fi negativă dacă textul începe cu un kern stâng.

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

Returnează o imagine care conține imaginea sursă transformată afin, folosind o zonă de decupare opțională. (mai mult).

affineMatrixConcat (array $m1, array $m2)array

Returnează concatenarea a două matrici de transformare afină, ceea ce este util dacă mai multe transformări ar trebui aplicate simultan aceleiași imagini. (mai mult)

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

Returnează o matrice de transformare afină. (mai mult)

alphaBlending (bool $on)void

Permite două moduri diferite de desenare în imagini truecolor. În modul de amestecare, componenta canalului alfa a culorii utilizate în toate funcțiile de desenare, cum ar fi setPixel(), determină în ce măsură ar trebui să fie permisă transparența culorii de bază. Ca rezultat, culoarea existentă în acel punct este amestecată automat cu culoarea desenată, iar rezultatul este salvat în imagine. Pixelul rezultat este opac. În modul fără amestecare, culoarea desenată este copiată literal cu informațiile canalului alfa și înlocuiește pixelul țintă. Modul de amestecare nu este disponibil la desenarea pe imagini cu paletă. (mai mult)

antialias (bool $on): void

Activează desenarea cu antialiasing pentru linii și poligoane. Nu suportă canale alfa. Funcționează numai cu imagini truecolor.

Utilizarea primitivelor cu antialiasing împreună cu o culoare de fundal transparentă poate duce la rezultate neașteptate. Metoda de amestecare tratează culoarea de fundal ca pe orice altă culoare. (mai mult)

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

Desenează un arc de cerc centrat la coordonatele date. (mai mult)

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

Returnează un identificator de culoare reprezentând culoarea compusă din componentele RGB date. Trebuie apelată pentru a crea fiecare culoare care urmează să fie utilizată în imagine. (mai mult)

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

Se comportă la fel ca colorAllocate(), adăugând parametrul de transparență $alpha. (mai mult)

colorAt (int $x, int $y)int

Returnează indexul culorii pixelului de la locația specificată în imagine. Dacă imaginea este truecolor, această funcție returnează valoarea RGB a acelui pixel ca număr întreg. Utilizați operații de deplasare și mascare a biților pentru a accesa valorile individuale ale componentelor roșu, verde și albastru. (mai mult)

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

Returnează indexul culorii din paleta imaginii care este „cea mai apropiată” de valoarea RGB specificată. “Distanța” dintre culoarea dorită și fiecare culoare din paletă este calculată ca și cum valorile RGB ar reprezenta puncte într-un spațiu tridimensional. (mai mult)

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

Returnează indexul culorii din paleta imaginii care este „cea mai apropiată” de valoarea RGB specificată și nivelul $alpha. (mai mult)

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

Obține indexul culorii care are nuanța, albul și negrul cel mai apropiate de culoarea dată. (mai mult)

colorDeallocate (int $color)void

Dealocă o culoare alocată anterior folosind colorAllocate() sau colorAllocateAlpha(). (mai mult)

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

Returnează indexul culorii specificate în paleta imaginii. (mai mult)

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

Returnează indexul culorii specificate + alfa în paleta imaginii. (mai mult)

colorMatch (Image $image2)void

Potrivește culorile paletei imaginii curente cu cele ale imaginii $image2. (mai mult)

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

Returnează indexul culorii pentru culoarea solicitată, fie culoarea exactă, fie cea mai apropiată alternativă posibilă. (mai mult)

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

Returnează indexul culorii pentru culoarea solicitată, fie culoarea exactă, fie cea mai apropiată alternativă posibilă. (mai mult)

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

Setează culoarea specificată la indexul dat în paletă. (mai mult)

colorsForIndex (int $index)array

Obține culoarea pentru indexul specificat. (mai mult)

colorsTotal(): int

Returnează numărul total de culori din paleta imaginii. (mai mult)

colorTransparent (?int $color=null)int

Obține sau setează culoarea transparentă în imagine. (mai mult)

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

Aplică o matrice de convoluție imaginii, folosind coeficientul și offset-ul dat. (mai mult)

Necesită prezența extensiei Bundled GD, deci s-ar putea să nu funcționeze peste tot.

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

Copiază o parte din $src în imagine începând de la coordonatele $srcX, $srcY cu lățimea $srcW și înălțimea $srcH. Partea definită va fi copiată la coordonatele $dstX și $dstY. (mai mult)

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

Copiază o porțiune din imaginea $src în imaginea curentă, similar cu copy(), dar îmbină pixelii sursă și destinație în funcție de $opacity. (mai mult)

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

Copiază o porțiune din imaginea $src în imaginea curentă. Această funcție este identică cu copyMerge(), cu excepția faptului că, la îmbinare, păstrează nuanța sursei prin conversia pixelilor țintă la scară de gri înainte de operația de copiere.

(mai mult)

copyResampled (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Copiază o porțiune dreptunghiulară dintr-o imagine în alta, interpolând lin valorile pixelilor. Acest lucru asigură o claritate mai bună, în special la micșorarea imaginii.

Pe scurt, copyResampled() ia o zonă dreptunghiulară din $src (lățime $srcW, înălțime $srcH, poziție ($srcX, $srcY)) și o plasează într-o zonă dreptunghiulară a imaginii curente (lățime $dstW, înălțime $dstH, poziție ($dstX, $dstY)).

Dacă dimensiunile și coordonatele sursă și țintă diferă, se efectuează extinderea sau micșorarea corespunzătoare a fragmentului de imagine. Coordonatele se referă la colțul din stânga sus. Funcția poate fi utilizată pentru a copia zone în aceeași imagine, dar rezultatele pot fi imprevizibile dacă zonele se suprapun. (mai mult)

copyResized (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Pe scurt, copyResized() ia o zonă dreptunghiulară din $src (lățime $srcW, înălțime $srcH, poziție ($srcX, $srcY)) și o plasează într-o zonă dreptunghiulară a imaginii curente (lățime $dstW, înălțime $dstH, poziție ($dstX, $dstY)).

Dacă dimensiunile și coordonatele sursă și țintă diferă, se efectuează extinderea sau micșorarea corespunzătoare a fragmentului de imagine. Coordonatele se referă la colțul din stânga sus. Funcția poate fi utilizată pentru a copia zone în aceeași imagine, dar rezultatele pot fi imprevizibile dacă zonele se suprapun. (mai mult)

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

Decupează imaginea la zona dreptunghiulară specificată. Dimensiunile pot fi specificate ca numere întregi în pixeli sau șiruri de caractere reprezentând procente (de exemplu, '50%').

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

Decupează automat imaginea în funcție de $mode specificat. (mai mult)

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

Desenează o elipsă centrată la coordonatele specificate. (mai mult)

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

Umple o regiune începând de la coordonata specificată ($x, $y; stânga sus este 0, 0) cu culoarea $color. (mai mult)

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

Desenează un arc parțial umplut, centrat la coordonatele specificate. (mai mult)

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

Desenează o elipsă umplută, centrată la coordonatele specificate. (mai mult)

filledPolygon (array $points, ImageColor $color)void

Creează un poligon umplut în imagine. $points este un array de coordonate (x0, y0, x1, y1, …). (mai mult)

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

Creează un dreptunghi umplut cu $color în imagine, având colțurile opuse la ($x1, $y1) și ($x2, $y2). Punctul (0, 0) este colțul din stânga sus al imaginii. (mai mult)

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

Creează un dreptunghi umplut cu $color în imagine, începând de la punctul ($left, $top) cu lățimea $width și înălțimea $height. Punctul (0, 0) este colțul din stânga sus al imaginii.

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

Realizează o umplere (flood fill) a cărei culoare de margine este definită de $border. Punctul de pornire al umplerii este ($x, $y) (stânga sus este 0, 0), iar zona este umplută cu culoarea $color. (mai mult)

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

Aplică filtrul specificat $filtertype imaginii. Argumentele suplimentare $args depind de tipul filtrului. (mai mult)

flip (int $mode): void

Răstoarnă imaginea folosind modul $mode specificat (ex. IMG_FLIP_HORIZONTAL). (mai mult)

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

Scrie text în imagine folosind fonturi FreeType. (mai mult)

gammaCorrect (float $inputgamma, float $outputgamma)void

Aplică corecția gamma imaginii, transformând de la $inputgamma la $outputgamma. (mai mult)

getClip(): array

Returnează zona de decupare curentă (clipping area), adică dreptunghiul în afara căruia nu vor fi desenați pixeli. (mai mult)

getHeight(): int

Returnează înălțimea imaginii în pixeli.

getImageResource(): resource|GdImage

Returnează resursa GD internă a imaginii.

getWidth(): int

Returnează lățimea imaginii în pixeli.

interlace (?int $interlace=null)int

Activează sau dezactivează modul intercalat (interlacing). Dacă este activat și imaginea este salvată ca JPEG, va fi salvată ca JPEG progresiv. Returnează 1 dacă interlace bit este setat, 0 altfel. (mai mult)

isTrueColor(): bool

Verifică dacă imaginea este truecolor (spre deosebire de cele bazate pe paletă). (mai mult)

layerEffect (int $effect)void

Setează flag-ul de amestecare alfa pentru a utiliza efecte de stratificare (layer effects). (mai mult)

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

Desenează o linie între două puncte date. (mai mult)

openPolygon (array $points, ImageColor $color)void

Desenează un poligon deschis pe imagine. Spre deosebire de polygon(), nu se desenează nicio linie între ultimul și primul punct. (mai mult)

paletteCopy (Image $source)void

Copiază paleta din imaginea $source în imaginea curentă. (mai mult)

paletteToTrueColor(): void

Convertește o imagine bazată pe paletă într-o imagine truecolor. (mai mult)

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

Suprapune imaginea $image peste imaginea curentă la coordonatele ($left, $top). Coordonatele pot fi specificate ca numere întregi în pixeli sau șiruri de caractere reprezentând procente (de exemplu, '50%'). $opacity controlează transparența imaginii suprapuse (0–100).

polygon (array $points, ImageColor $color)void

Creează un poligon închis în imagine. $points este un array de coordonate. (mai mult)

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

Desenează un dreptunghi cu colțurile opuse la coordonatele specificate. (mai mult)

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

Desenează un dreptunghi pornind de la coordonatele ($left, $top) cu lățimea $width și înălțimea $height.

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

Redimensionează imaginea, mai multe informații. Dimensiunile pot fi specificate ca numere întregi în pixeli sau șiruri de caractere reprezentând procente (de exemplu, '50%').

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

Setează sau returnează rezoluția imaginii în DPI (dots per inch). Dacă nu este specificat niciun parametru, returnează rezoluția curentă ca array indexat ([x, y]). Dacă este specificat doar $resX, rezoluția orizontală și verticală sunt setate la această valoare. Dacă sunt specificați ambii parametri, rezoluția orizontală și verticală sunt setate la aceste valori respective.

Rezoluția este utilizată doar ca meta-informație la citirea și scrierea imaginilor în formate care suportă aceste informații (în prezent PNG și JPEG). Nu afectează operațiile de desenare. Rezoluția implicită pentru imaginile noi este 96 DPI. (mai mult)

rotate (float $angle, int $backgroundColor)Image

Rotește imaginea cu unghiul $angle specificat în grade. Centrul de rotație este centrul imaginii. $backgroundColor specifică culoarea zonelor descoperite după rotație. Imaginea rotită poate avea dimensiuni diferite față de cea originală. (mai mult)

Necesită prezența extensiei Bundled GD, deci s-ar putea să nu funcționeze peste tot.

save (string $file, ?int $quality=null, ?int $type=null)void

Salvează imaginea într-un fișier.

Calitatea compresiei este în intervalul 0..100 pentru JPEG (implicit 85), WEBP (implicit 80) și AVIF (implicit 30) și 0..9 pentru PNG (implicit 9). Dacă tipul nu este evident din extensia fișierului, îl puteți specifica folosind una dintre constantele ImageType.

saveAlpha (bool $saveflag)void

Setează flag-ul care determină dacă informațiile complete ale canalului alfa trebuie păstrate la salvarea imaginilor PNG (spre deosebire de transparența cu o singură culoare).

Amestecarea alfa trebuie dezactivată (alphaBlending(false)) pentru a păstra canalul alfa. (mai mult)

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

Scalează imaginea folosind algoritmul de interpolare dat. (mai mult)

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

Trimite imaginea către browser.

Calitatea compresiei este în intervalul 0..100 pentru JPEG (implicit 85), WEBP (implicit 80) și AVIF (implicit 30) și 0..9 pentru PNG (implicit 9).

setBrush (Image $brush)void

Setează imaginea pensulei care va fi utilizată în toate funcțiile de desenare a liniilor (de exemplu, line() și polygon()) la desenarea cu culorile speciale IMG_COLOR_BRUSHED sau IMG_COLOR_STYLEDBRUSHED. (mai mult)

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

Setează decuparea curentă, adică zona dincolo de care nu vor fi desenați pixeli. (mai mult)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Setează metoda de interpolare, care va afecta metodele rotate() și affine(). (mai mult)

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

Desenează un pixel la coordonata specificată. (mai mult)

setStyle (array $style)void

Setează stilul care trebuie utilizat de toate funcțiile de desenare a liniilor (de exemplu, line() și polygon()) la desenarea cu culoarea specială IMG_COLOR_STYLED sau a liniilor de imagini cu culoarea IMG_COLOR_STYLEDBRUSHED. (mai mult)

setThickness (int $thickness)void

Setează grosimea liniilor la desenarea dreptunghiurilor, poligoanelor, arcelor etc. la $thickness pixeli. (mai mult)

setTile (Image $tile)void

Setează imaginea mozaicului care va fi utilizată în toate funcțiile de umplere a regiunilor (de exemplu, fill() și filledPolygon()) la umplerea cu culoarea specială IMG_COLOR_TILED.

Un mozaic este o imagine utilizată pentru a umple o zonă cu un model repetitiv. Orice imagine poate fi utilizată ca mozaic. Setând o culoare transparentă pentru imaginea mozaic folosind colorTransparent(), se poate crea un mozaic prin care anumite părți ale zonei de dedesubt vor fi vizibile. (mai mult)

sharpen(): Image

Ascute imaginea.

Necesită prezența extensiei Bundled GD, deci s-ar putea să nu funcționeze peste tot.

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

Returnează conținutul imaginii sub formă de șir.

Calitatea compresiei este în intervalul 0..100 pentru JPEG (implicit 85), WEBP (implicit 80) și AVIF (implicit 30) și 0..9 pentru PNG (implicit 9).

trueColorToPalette (bool $dither, int $ncolors)void

Convertește o imagine truecolor într-o imagine cu paletă. (mai mult)

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

Scrie textul dat în imagine folosind fonturi TrueType. (mai mult)

versiune: 4.0