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)