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. Nu ar fi Nette Framework dacă nu ar veni cu un API sexy.

Instalare:

composer require nette/utils

Toate exemplele presupun crearea unui 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 propriu-zisă, 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 modificare. Exemplu de redimensionare proporțională astfel încât 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, una dintre dimensiuni 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 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 extinderea 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:

$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, dar nu rupeți frunzele. 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 specificării 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 imagine:

$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 transparența imaginii inserate (creăm un așa-numit watermark):

$blank->place($image, '80%', '80%', 25); // transparența 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 liniilor și poligoanelor netezite. Nu acceptă canale alfa. Funcționează numai cu imagini truecolor.

Utilizarea primitivelor antialiasate cu o culoare de fundal transparentă poate duce la rezultate neașteptate. Metoda de amestecare utilizează culoarea de fundal ca 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() cu adăugarea parametrului de transparență $alpha. (mai mult)

colorAt (int $x, int $y)int

Returnează indexul culorii pixelului 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 deplasarea de biți și mascarea de biți 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 „cel 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 „cel 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

De-alocă 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 cu a doua imagine. (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ă indexul specificat în paletă la culoarea specificată. (mai mult)

colorsForIndex (int $index)array

Obține culoarea indexului specificat. (mai mult)

colorsTotal(): int

Returnează numărul 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 Bundled GD extension, 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 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)

copyMergeGray (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity)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.

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ă a unei imagini în altă imagine, interpolând lin valorile pixelilor, astfel încât, în special la micșorarea dimensiunii imaginii, aceasta își păstrează o claritate mare.

Cu alte cuvinte, copyResampled() ia o zonă dreptunghiulară din $src cu lățimea $srcW și înălțimea $srcH la poziția ($srcX, $srcY) și o plasează într-o zonă dreptunghiulară a imaginii cu lățimea $dstW și înălțimea $dstH la poziția ($dstX, $dstY).

Dacă coordonatele sursă și țintă, lățimea și înălțimea diferă, se efectuează extinderea sau micșorarea corespunzătoare a fragmentului de imagine. Coordonatele se referă la colțul din stânga sus. Această funcție poate fi utilizată pentru a copia zone în aceeași imagine, dar dacă zonele se suprapun, rezultatele nu vor fi previzibile. (mai mult)

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

Copiază o porțiune dreptunghiulară a unei imagini în altă imagine. Cu alte cuvinte, copyResized() obține o zonă dreptunghiulară din $src cu lățimea $srcW și înălțimea $srcH la poziția ($srcX, $srcY) și o plasează într-o zonă dreptunghiulară a imaginii cu lățimea $dstW și înălțimea $dstH la poziția ($dstX, $dstY).

Dacă coordonatele sursă și țintă, lățimea și înălțimea diferă, se efectuează extinderea sau micșorarea corespunzătoare a fragmentului de imagine. Coordonatele se referă la colțul din stânga sus. Această funcție poate fi utilizată pentru a copia zone în aceeași imagine, dar dacă zonele se suprapun, rezultatele nu vor fi previzibile. (mai mult)

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

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

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

Decupează automat imaginea în funcție de $mode dat. (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 dată (stânga sus este 0, 0) cu $color dat. (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 centrat la coordonatele specificate. (mai mult)

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

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

filledPolygon (array $points, ImageColor $color)void

Creează un poligon umplut în imagine. (mai mult)

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

Creează un dreptunghi umplut cu $color în imagine, începând de la punctul $x1 & $y1 și terminând la punctul $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

Desenează o umplere a cărei culoare a marginii 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 $filtertype dat imaginii. (mai mult)

flip (int $mode): void

Răstoarnă imaginea folosind $mode dat. (mai mult)

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

Scrie text în imagine. (mai mult)

gammaCorrect (float $inputgamma, float $outputgamma)void

Aplică corecția gamma imaginii în raport cu gamma de intrare și de ieșire. (mai mult)

getClip(): array

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

getHeight(): int

Returnează înălțimea imaginii.

getImageResource(): resource|GdImage

Returnează resursa originală.

getWidth(): int

Returnează lățimea imaginii.

interlace (?int $interlace=null)int

Activează sau dezactivează modul intercalat. Dacă modul intercalat este setat și imaginea este salvată ca JPEG, aceasta va fi salvată ca JPEG progresiv. (mai mult)

isTrueColor(): bool

Verifică dacă imaginea este truecolor. (mai mult)

layerEffect (int $effect)void

Setează flag-ul de amestecare alfa pentru a utiliza efecte de stratificare. (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 $source în imagine. (mai mult)

paletteToTrueColor(): void

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

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

Copiază $image în imagine la coordonatele $left și $top. Coordonatele pot fi specificate ca numere întregi în pixeli sau șiruri de caractere în procente (de exemplu, '50%').

polygon (array $points, ImageColor $color)void

Creează un poligon în imagine. (mai mult)

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

Creează un dreptunghi la coordonatele specificate. (mai mult)

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

Creează un dreptunghi la coordonatele specificate.

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 în procente (de exemplu, '50%').

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

Setează sau returnează rezoluția imaginii în DPI (puncte pe inch). Dacă nu este specificat niciunul dintre parametrii opționali, rezoluția curentă este returnată ca un array indexat. Dacă este specificat doar $resX, rezoluția orizontală și verticală este setată la această valoare. Dacă sunt specificați ambii parametri opționali, rezoluția orizontală și verticală este setată la aceste valori.

Rezoluția este utilizată doar ca meta-informație atunci când imaginile sunt citite și scrise în formate care acceptă acest tip de informații (în prezent PNG și JPEG). Nu afectează nicio operație de desenare. Rezoluția implicită a imaginilor noi este de 96 DPI. (mai mult)

rotate (float $angle, int $backgroundColor)Image

Rotește imaginea cu $angle specificat în grade. Centrul de rotație este centrul imaginii, iar imaginea rotită poate avea dimensiuni diferite față de imaginea originală. (mai mult)

Necesită prezența Bundled GD extension, 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 dacă să se păstreze informațiile complete ale canalului alfa la salvarea imaginilor PNG (spre deosebire de transparența monocromă).

Amestecarea alfa trebuie dezactivată (alphaBlending(false)) pentru a păstra canalul alfa în primul rând. (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, iar prin setarea indexului culorii transparente a imaginii mozaicului cu colorTransparent(), se poate crea un mozaic în care anumite părți ale zonei subiacente vor fi vizibile. (mai mult)

sharpen(): Image

Ascute imaginea.

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

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

Salvează imaginea într-un ș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. (mai mult)

versiune: 4.0