Funcții de imagine
Clasa Nette\Utils\Image simplifică manipularea imaginilor, cum ar fi redimensionarea, decuparea, ascuțirea, desenarea sau fuzionarea mai multor imagini.
PHP dispune de un set extins de funcții pentru manipularea imaginilor. Dar API-ul nu este foarte frumos. Nu ar fi un cadru de lucru îngrijit pentru a veni cu un API sexy.
Instalare:
composer require nette/utils
Următoarele exemple presupun că este definit următorul alias de clasă:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Crearea unei imagini
Vom crea o nouă imagine în culori reale, de exemplu, cu dimensiunile de 100×200:
$image = Image::fromBlank(100, 200);
Opțional, puteți specifica o culoare de fundal (culoarea 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');
Salvați imaginea
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%
În cazul în care formatul nu este evident din extensia fișierului, acesta poate fi specificat prin 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 trimiteți direct la browser cu antetul HTTP corespunzător Content-Type
:
// trimite antet Content-Type: image/png
$image->send(ImageType::PNG);
Formate
Formatele acceptate sunt JPEG, PNG, GIF, WebP, AVIF și BMP. Cu toate acestea, ele trebuie să fie acceptate și de versiunea dumneavoastră de PHP, ceea ce poate fi verificat cu ajutorul funcției isTypeSupported(). Animațiile nu sunt acceptate.
Formatele sunt reprezentate 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 unei imagini la încărcare? Metoda îl returnează în cel de-al doilea parametru:
$image = Image::fromFile('nette.jpg', $type);
Detectarea efectivă fără a încărca imaginea este realizată de Image::detectTypeFromFile()
.
Redimensionarea imaginii
O operațiune obișnuită este redimensionarea unei imagini. Dimensiunile curente sunt returnate prin metodele
getWidth()
și getHeight()
.
Metoda resize()
este utilizată pentru redimensionare. Acesta este un exemplu de modificare proporțională a
dimensiunii, astfel încât aceasta să nu depășească 500×300 pixeli (fie lățimea va fi exact 500px, fie înălțimea va fi
exact 300px, una dintre dimensiuni fiind calculată pentru a menține raportul de aspect):
$image->resize(500, 300);
Este posibil să setați doar o singură dimensiune, iar cea de-a doua va fi calculată:
$image->resize(500, null); // lățime 500px, înălțime auto
$image->resize(null, 300); // lățime auto, înălțime 300px
Orice dimensiune poate fi specificată în procente:
$image->resize('75%', 300); // 75% × 300px
Comportamentul resize
poate fi influențat de următoarele indicatori. Toate, cu excepția
Image::Stretch
, păstrează raportul de aspect.
Steag | Descriere |
---|---|
Image::OrSmaller (implicit) |
dimensiunile rezultate vor fi mai mici sau egale cu cele specificate |
Image::OrBigger |
umple zona țintă și, eventual, o extinde într-o singură direcție |
Image::Cover |
umple întreaga zonă și taie ceea ce o depășește |
Image::ShrinkOnly |
doar se micșorează (nu extinde o imagine mică) |
Image::Stretch |
nu păstrează raportul de aspect |
Steagurile sunt transmise ca al treilea argument al funcției:
$image->resize(500, 300, Image::OrBigger);
Steagurile pot fi combinate:
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
Imaginile pot fi răsturnate pe verticală sau pe orizontală prin specificarea uneia dintre dimensiuni (sau a ambelor) ca număr negativ:
$flipped = $image->resize(null, '-100%'); // flip vertical
$flipped = $image->resize('-100%', '-100%'); // rotiți cu 180°.
$flipped = $image->resize(-125, 500); // redimensionare și întoarcere orizontală
După reducerea imaginii, o putem îmbunătăți prin sharppening:
$image->sharpen();
Recoltare
Metoda crop()
este utilizată pentru recoltare:
$image->crop($left, $top, $width, $height);
Ca și în cazul resize()
, toate valorile pot fi specificate în procente. Procentele pentru $left
și $top
sunt calculate din spațiul rămas, similar cu proprietatea CSS background-position
:
$image->crop('100%', '50%', '80%', '80%');
Imaginea poate fi, de asemenea, decupată automat, de exemplu, marginile negre decupate:
$image->cropAuto(IMG_CROP_BLACK);
Metoda cropAuto()
este o încapsulare în obiect a funcției imagecropauto()
, a se vedea documentația acesteia pentru mai multe informații.
Culori
Metoda ImageColor::rgb()
vă permite să definiți o culoare folosind valorile roșu, verde și albastru (RGB).
Opțional, puteți specifica, de asemenea, o valoare de transparență de la 0 (complet transparent) la 1 (complet opac), la fel
ca în CSS.
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
Metoda ImageColor::hex()
vă permite să definiți o culoare utilizând formatul hexazecimal, similar cu CSS.
Aceasta acceptă formatele #rgb
, #rrggbb
, #rgba
și #rrggbbaa
:
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
Culorile pot fi utilizate în alte metode, cum ar fi ellipse()
, fill()
, etc.
Desen și editare
Puteți desena, puteți scrie, puteți utiliza toate funcțiile PHP pentru manipularea imaginilor, vedeți Prezentare generală a metodelor, dar într-o învelitoare 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().
Îmbinarea mai multor imagini
Puteți plasa cu ușurință o altă imagine în imagine:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// coordonatele pot fi stabilite și în procente
$blank->place($logo, '80%', '80%'); // lângă colțul din dreapta jos
La lipire, canalul alfa este respectat, în plus, putem influența transparența imaginii inserate (vom crea un așa-numit filigran):
$blank->place($image, '80%', '80%', 25); // transparența este de 25 %.
O astfel de API este într-adevăr o plăcere de utilizat, nu-i așa?
Prezentare generală a metodelor
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Creează o nouă imagine în culori reale cu dimensiunile date. Culoarea implicită este negru.
static fromFile(string $file, int &$detectedFormat=null): Image
Citește o imagine dintr-un fișier și returnează tipul acesteia în
$detectedFormat
.
static fromString(string $s, int &$detectedFormat=null): Image
Citește o imagine dintr-un șir de caractere și returnează tipul acesteia în
$detectedFormat
.
static rgb(int $red, int $green, int $blue, int $transparency=0): array
Această caracteristică a fost înlocuită de clasa ImageColor
, a se vedea culori.
static typeToExtension(int $type): string
Returnează extensia de fișier pentru tipul dat.
static typeToMimeType(int $type): string
Returnează tipul mime pentru tipul dat.
static extensionToType(string $extension): int
Returnează tipul de imagine în funcție de extensia fișierului.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int
Returnează tipul de fișier imagine și, în parametrii $width
și
$height
, și dimensiunile acestuia.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int
Returnează tipul de imagine din șirul de caractere, iar în parametrii $width
și
$height
și dimensiunile acesteia.
static isTypeSupported(int $type): bool
Determină dacă tipul de imagine dat este acceptat.
static getSupportedTypes(): array
Returnează o matrice de tipuri de imagini acceptate (constante ImageType::XXX
).
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Calculează dimensiunile dreptunghiului care înconjoară textul cu un font și o dimensiune specificate. Se returnează un
tablou asociativ care conține cheile left
, top
, width
, height
. Marja stângă
poate fi negativă dacă textul începe cu o depășire la stânga.
affine(array $affine, ?array $clip=null): Image
Returnează o imagine care conține imaginea sursă transformată afine, folosind o zonă de tăiere opțională. (mai mult).
affineMatrixConcat(array $m1, array $m2): array
Returnează concatenarea a două matrici de transformare afină, ceea ce este util în cazul în care mai multe transformări trebuie aplicate aceleiași imagini dintr-o singură dată. (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 a desena pe imaginile truecolor. În modul de amestecare, componenta canalului alfa a culorii
furnizată tuturor funcțiilor de desen, cum ar fi setPixel()
, determină cât de mult din culoarea de bază trebuie
să fie lăsată să strălucească. Ca urmare, amestecă automat culoarea existentă în acel punct cu culoarea desenului și
stochează rezultatul în imagine. Pixelul rezultat este opac. În modul de neamestec, culoarea desenului este copiată literal cu
informațiile canalului său alfa, înlocuind pixelul de destinație. Modul de amestecare nu este disponibil atunci când se
desenează pe imagini de paletă. (mai mult)
antialias(bool $on): void
Activați metodele de desenare rapidă antialiasată pentru linii și poligoane cablate. Nu acceptă componente alfa. Funcționează cu ajutorul unei operațiuni de amestecare directă. Funcționează numai cu imagini în culori reale.
Utilizarea primitivelor antialiasate cu o culoare de fundal transparentă poate avea rezultate neașteptate. Metoda de amestecare utilizează culoarea de fundal ca orice altă culoare. Lipsa suportului pentru componenta alfa nu permite o metodă de antialiasing bazată pe alfa. (mai mult)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Desenează un arc de cerc centrat pe coordonatele date. (mai mult)
colorAllocate(int $red, int $green, int $blue): int
Returnează un identificator de culoare care reprezintă culoarea compusă din componentele RGB date. Acesta 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ă în mod identic cu colorAllocate()
, cu adăugarea parametrului de transparență $alpha
.
(mai mult)
colorAt(int $x, int $y): int
Returnează indicele culorii pixelului din locația specificată în imagine. În cazul în care imaginea este o imagine în culori reale, această funcție returnează valoarea RGB a pixelului respectiv ca număr întreg. Utilizați deplasarea de biți și mascarea pentru a accesa valorile distincte ale componentelor roșu, verde și albastru: (mai mult)
colorClosest(int $red, int $green, int $blue): int
Returnează indicele 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 în spațiul tridimensional. (mai mult)
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int
Returnează indicele culorii din paleta imaginii care este „cel mai apropiat“ de valoarea RGB și de nivelul
$alpha
specificate. (mai mult)
colorClosestHWB(int $red, int $green, int $blue): int
Obține indexul culorii care are nuanța, albul și negrul cele mai apropiate de culoarea dată. (mai mult)
colorDeallocate(int $color): void
De-alocă o culoare alocată anterior cu colorAllocate()
sau colorAllocateAlpha()
. (mai mult)
colorExact(int $red, int $green, int $blue): int
Returnează indicele culorii specificate în paleta imaginii. (mai mult)
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int
Returnează indicele culorii+alfa specificate în paleta de culori a imaginii. (mai mult)
colorMatch(Image $image2): void
Face ca culorile din versiunea de paletă a unei imagini să se apropie mai mult de versiunea în culori reale. (mai mult)
colorResolve(int $red, int $green, int $blue): int
Returnează un indice de culoare pentru o culoare solicitată, fie culoarea exactă, fie cea mai apropiată alternativă posibilă. (mai mult)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
Returnează un indice de culoare pentru o culoare solicitată, fie culoarea exactă, fie cea mai apropiată alternativă posibilă. (mai mult)
colorSet(int $index, int $red, int $green, int $blue): void
Aceasta setează indexul specificat în paletă la culoarea specificată. (mai mult)
colorsForIndex(int $index): array
Obține culoarea pentru un indice specificat. (mai mult)
colorsTotal(): int
Returnează numărul de culori dintr-o paletă de imagini (mai multe).
colorTransparent(?int $color=null): int
Obține sau stabilește culoarea transparentă a imaginii. (mai mult)
convolution(array $matrix, float $div, float $offset): void
Aplică o matrice de convoluție pe imagine, folosind coeficientul și decalajul date. (mai mult)
Necesită Extensie GD la pachet, deci nu este sigur că va funcționa peste tot.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
Copiază o parte din $src
pe imagine începând de la coordonatele $srcX
, $srcY
cu
o lățime de $srcW
și o înălțime de $srcH
. Porțiunea definită va fi copiată pe 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
pe imagine începând de la coordonatele $srcX
, $srcY
cu
o lățime de $srcW
și o înălțime de $srcH
. Porțiunea definită va fi copiată pe 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
pe imagine începând de la coordonatele $srcX
, $srcY
cu
o lățime de $srcW
și o înălțime de $srcH
. Porțiunea definită va fi copiată pe coordonatele,
$dstX
și $dstY
.
Această funcție este identică cu copyMerge()
, cu excepția faptului că, la fuziune, păstrează nuanța sursei
prin convertirea pixelilor de destinație în scala de gri înainte de operațiunea 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 altă imagine, interpolând lin valorile pixelilor, astfel încât, în special, reducerea dimensiunii unei imagini să păstreze în continuare o mare claritate.
Cu alte cuvinte, copyResampled()
va lua o zonă dreptunghiulară din $src
cu lățimea
$srcW
și înălțimea $srcH
în poziția ($srcX
,$srcY
) și o va plasa
într-o zonă dreptunghiulară a imaginii cu lățimea $dstW
și înălțimea $dstH
în poziția
($dstX
,$dstY
).
În cazul în care coordonatele, lățimea și înălțimile sursei și ale destinației diferă, se va efectua o întindere sau o micșorare 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 regiuni din cadrul aceleiași imagini, dar dacă regiunile se suprapun, rezultatele vor fi imprevizibile. (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ă dintr-o imagine în altă imagine. Cu alte cuvinte, copyResized()
va lua
o zonă dreptunghiulară din $src
cu lățimea $srcW
și înălțimea $srcH
în poziția
($srcX
,$srcY
) și o va plasa într-o zonă dreptunghiulară a imaginii cu lățimea $dstW
și înălțimea $dstH
în poziția ($dstX
,$dstY
).
În cazul în care coordonatele, lățimea și înălțimile sursei și ale destinației diferă, se va efectua o întindere sau o micșorare 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 regiuni din cadrul aceleiași imagini, dar dacă regiunile se suprapun, rezultatele vor fi imprevizibile. (mai mult)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Recuperează o imagine în zona dreptunghiulară dată. Dimensiunile pot fi transmise ca numere întregi în pixeli sau ca
șiruri de caractere în procente (de exemplu, '50%'
).
cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Recuperează automat o imagine în funcție de datele furnizate $mode
. (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
Efectuează o umplere de inundație începând de la coordonata dată (stânga sus este 0, 0) cu $color
în
imagine. (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 pe coordonata specificată în imagine. (mai mult)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Desenează o elipsă centrată la coordonatele specificate în imagine. (mai mult)
filledPolygon(array $points, ImageColor $color): void
Creează un poligon umplut în imaginea $image. (mai mult)
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Creează un dreptunghi umplut cu $color
în imagine, începând cu $x1
& $y1
și
terminând cu $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 pornind 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
Efectuează o umplere de inundație a cărei culoare a marginii este definită de $border
. Punctul de plecare
pentru umplere este $x
, $y
(stânga sus este 0, 0) și regiunea este umplută cu culoarea
$color
. (mai mult)
filter(int $filtertype, int …$args): void
Aplică filtrul dat $filtertype
pe imagine. (mai
mult)
flip(int $mode): void
Întoarce imaginea folosind datele $mode
. (mai
mult)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Scrieți textul din imagine. (mai mult)
gammaCorrect(float $inputgamma, float $outputgamma): void
Aplică corecția gamma imaginii, având în vedere o gamă de intrare și una de ieșire. (mai mult)
getClip(): array
Obține dreptunghiul de tăiere curent, adică zona dincolo de care nu se va desena niciun pixel. (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ă bitul de întrepătrundere. Dacă bitul de întrepătrundere este setat și imaginea este utilizată ca imagine JPEG, imaginea este creată ca o imagine JPEG progresivă. (mai mult)
isTrueColor(): bool
Află dacă imaginea este un truecolor. (mai mult)
layerEffect(int $effect): void
Setați indicatorul de amestecare alfa pentru a utiliza efectele de stratificare. (mai mult)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Trasează o linie între cele două puncte date. (mai mult)
openPolygon(array $points, ImageColor $color): void
Desenează un poligon deschis pe imagine. Spre deosebire de polygon()
, nu se trasează nicio linie între ultimul
și primul punct. (mai mult)
paletteCopy(Image $source): void
Copiază paleta de pe $source
pe imagine. (mai
mult)
paletteToTrueColor(): void
Convertește o imagine bazată pe palete, creată de funcții precum create()
, într-o imagine în culori reale,
precum createtruecolor()
. (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
transmise ca numere întregi în pixeli sau ca ș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 care începe la coordonatele specificate. (mai mult)
rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Creează un dreptunghi la coordonatele date.
resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Scală o imagine, vezi mai multe informații. Dimensiunile pot fi transmise ca numere întregi
în pixeli sau ca șiruri de caractere în procente (de exemplu, '50%'
).
resolution(?int $resX=null, ?int $resY=null): mixed
Permite setarea și obținerea rezoluției unei imagini în DPI (dots per inch). Dacă nu se furnizează niciunul dintre
parametrii opționali, rezoluția curentă este returnată sub formă de matrice indexată. Dacă se indică doar
$resX
, rezoluția orizontală și verticală este setată la această valoare. În cazul în care sunt furnizați
ambii parametri opționali, rezoluția orizontală și verticală sunt stabilite la aceste valori.
Rezoluția este utilizată ca meta-informație doar atunci când imaginile sunt citite și scrise în formate care acceptă acest tip de informații (în prezent PNG și JPEG). Aceasta nu afectează nicio operațiune de desenare. Rezoluția implicită pentru imaginile noi este de 96 DPI. (mai mult)
rotate(float $angle, int $backgroundColor): Image
Rotește imaginea folosind $angle
în grade. Centrul de rotație este centrul imaginii, iar imaginea rotită poate
avea dimensiuni diferite de cele ale imaginii originale. (mai
mult)
Necesită Extensie GD la pachet, deci nu este sigur că va funcționa peste tot.
save(string $file, ?int $quality=null, ?int $type=null): void
Salvează o imagine într-un fișier.
Calitatea compresiei este cuprinsă în intervalul 0…100 pentru JPEG (implicit 85), WEBP (implicit 80) și AVIF (implicit 30)
și 0…9 pentru PNG (implicit 9). În cazul în care tipul nu este evident din extensia fișierului, îl puteți specifica
folosind una dintre constantele ImageType
.
saveAlpha(bool $saveflag): void
Setează stegulețul care determină dacă se păstrează informațiile complete ale canalului alfa (spre deosebire de transparența unei singure culori) la salvarea imaginilor PNG.
Alphablending trebuie să fie 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
Redimensionează o imagine folosind algoritmul de interpolare dat. (mai mult)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Trimite o imagine în browser.
Calitatea compresiei este cuprinsă î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
Stabilește imaginea pensulei care va fi utilizată de toate funcțiile de desenare a liniilor (cum ar fi line()
și polygon()
) atunci când se desenează cu culorile speciale IMG_COLOR_BRUSHED sau IMG_COLOR_STYLEDBRUSHED. (mai mult)
setClip(int $x1, int $y1, int $x2, int $y2): void
Stabilește dreptunghiul de decupaj curent, adică zona dincolo de care nu se va desena niciun pixel. (mai mult)
setInterpolation(int $method=IMG_BILINEAR_FIXED): void
Stabilește metoda de interpolare care afectează metodele rotate()
și affine()
. (mai mult)
setPixel(int $x, int $y, ImageColor $color): void
Desenează un pixel la coordonatele specificate. (mai mult)
setStyle(array $style): void
Stabilește stilul care va fi utilizat de toate funcțiile de desenare a liniilor (cum ar fi line()
și
polygon()
) atunci când se desenează cu culoarea specială IMG_COLOR_STYLED sau linii de imagini cu culoarea
IMG_COLOR_STYLEDBRUSHED. (mai mult)
setThickness(int $thickness): void
Stabilește grosimea liniilor desenate atunci când se desenează dreptunghiuri, poligoane, arcuri etc. la
$thickness
pixeli. (mai mult)
setTile(Image $tile): void
Definește imaginea de țiglă care trebuie utilizată de toate funcțiile de umplere a regiunii (cum ar fi fill()
și filledPolygon()
) atunci când se completează cu culoarea specială IMG_COLOR_TILED.
O țiglă este o imagine utilizată pentru a umple o zonă cu un model repetat. Orice imagine poate fi utilizată ca
o țiglă, iar prin setarea indicelui de culoare transparentă a imaginii țiglă cu colorTransparent()
, se poate
crea o țiglă care permite strălucirea anumitor părți ale zonei de bază. (mai mult)
sharpen(): Image
Acutizează puțin imaginea.
Necesită Extensie GD la pachet, deci nu este sigur că va funcționa peste tot.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Produce o imagine în șir de caractere.
Calitatea compresiei este cuprinsă î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 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)