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)