Delo s slikami

Razred Nette\Utils\Image poenostavlja manipulacijo s slikami, kot je spreminjanje velikosti, obrezovanje, ostrenje, risanje ali združevanje več slik.

PHP ima obsežen nabor funkcij za manipulacijo s slikami. Vendar njihov API ni zelo priročen. To ne bi bil Nette Framework, če ne bi ponudil seksi API-ja.

Namestitev:

composer require nette/utils

Vsi primeri predpostavljajo ustvarjen alias:

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

Ustvarjanje slike

Ustvarimo novo true color sliko, na primer z dimenzijami 100×200:

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

Izbirno lahko določimo barvo ozadja (privzeta je črna):

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

Ali pa sliko naložimo iz datoteke:

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

Shranjevanje slike

Sliko lahko shranimo v datoteko:

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

Določimo lahko kakovost stiskanja v obsegu 0..100 za JPEG (privzeto 85), WEBP (privzeto 80) in AVIF (privzeto 30) ter 0..9 za PNG (privzeto 9):

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

Če iz končnice datoteke ni razviden format, ga lahko določimo s konstanto:

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

Sliko lahko namesto na disk zapišemo v spremenljivko:

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

ali pa jo pošljemo neposredno v brskalnik z ustrezno HTTP glavo Content-Type:

// pošlje glavo Content-Type: image/png
$image->send(ImageType::PNG);

Formati

Podprti formati so JPEG, PNG, GIF, WebP, AVIF in BMP, vendar jih mora podpirati tudi vaša različica PHP, kar preverite s funkcijo isTypeSupported(). Animacije niso podprte.

Format predstavljajo konstante ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF in ImageType::BMP.

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

Ali morate pri nalaganju zaznati format slike? Metoda ga vrne v drugem parametru:

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

Samo zaznavanje brez nalaganja slike izvaja Image::detectTypeFromFile().

Spreminjanje velikosti

Pogosta operacija je spreminjanje dimenzij slike. Trenutne dimenzije vračata metodi getWidth() in getHeight().

Za spreminjanje služi metoda resize(). Primer proporcionalnega spreminjanja velikosti tako, da ne preseže dimenzij 500×300 pikslov (bodisi bo širina natančno 500 px ali pa bo višina natančno 300 px, ena od dimenzij se izračuna tako, da se ohrani razmerje stranic):

$image->resize(500, 300);

Možno je določiti samo eno dimenzijo, druga pa se izračuna:

$image->resize(500, null); // širina 500px, višina se izračuna

$image->resize(null, 300); // širina se izračuna, višina 300px

Katerokoli dimenzijo je mogoče navesti tudi v odstotkih:

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

Obnašanje resize lahko vplivamo z naslednjimi zastavicami. Vse razen Image::Stretch ohranjajo razmerje stranic.

Zastavica Opis
Image::OrSmaller (privzeto) končne dimenzije bodo manjše ali enake zahtevanim dimenzijam
Image::OrBigger zapolni (in po potrebi preseže v eni dimenziji) ciljno površino
Image::Cover zapolni ciljno površino in obreže tisto, kar presega
Image::ShrinkOnly samo pomanjševanje (prepreči raztegovanje majhne slike)
Image::Stretch ne ohranjati razmerja stranic

Zastavice se navedejo kot tretji argument funkcije:

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

Zastavice je mogoče kombinirati:

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

Slike je mogoče navpično ali vodoravno obrniti tako, da eno od dimenzij (ali obe) navedemo kot negativno število:

$flipped = $image->resize(null, '-100%'); // navpično obračanje

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

$flipped = $image->resize(-125, 500); // spremeni velikost & vodoravno obračanje

Po pomanjšanju slike je mogoče njen videz izboljšati z nežnim ostrenjem:

$image->sharpen();

Obrezovanje

Za obrezovanje služi metoda crop():

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

Podobno kot pri resize() so lahko vse vrednosti navedene v odstotkih. Odstotki pri $left in $top se izračunajo iz preostalega prostora, podobno kot pri CSS lastnosti background-position:

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

Sliko je mogoče obrezati tudi samodejno, na primer obrezovanje črnih robov:

$image->cropAuto(IMG_CROP_BLACK);

Metoda cropAuto() je objektna zamenjava funkcije imagecropauto(), v njeni dokumentaciji najdete več informacij.

Barve

Metoda ImageColor::rgb() vam omogoča definiranje barve z vrednostmi rdeče, zelene in modre (RGB). Izbirno lahko določite tudi vrednost prosojnosti v obsegu od 0 (popolnoma prosojno) do 1 (popolnoma neprosojno), torej enako kot v CSS.

$color = ImageColor::rgb(255, 0, 0); // Rdeča
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Polprosojna modra

Metoda ImageColor::hex() omogoča definiranje barve s šestnajstiškim formatom, podobno kot v CSS. Podpira formate #rgb, #rrggbb, #rgba in #rrggbbaa:

$color = ImageColor::hex("#F00"); // Rdeča
$transparentGreen = ImageColor::hex("#00FF0080"); // Polprosojna zelena

Barve lahko uporabite v drugih metodah, kot so ellipse(), fill() itd.

Risanje in urejanje

Lahko rišeš, lahko pišeš, a listov ne trgaj. Na voljo so vam vse funkcije PHP za delo s slikami, glejte #Pregled metod, vendar v objektnem ovoju:

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

Ker so PHP funkcije za risanje pravokotnikov nepraktične zaradi določanja koordinat, razred Image ponuja njihove zamenjave v obliki funkcij rectangleWH() in filledRectangleWH().

Združevanje več slik

V sliko je mogoče enostavno vstaviti drugo sliko:

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

// koordinate je mogoče spet navesti v odstotkih
$blank->place($logo, '80%', '80%'); // vstavimo blizu spodnjega desnega kota

Pri vstavljanju se upošteva alfa kanal, poleg tega lahko vplivamo na prosojnost vstavljene slike (ustvarimo t.i. vodni žig):

$blank->place($image, '80%', '80%', 25); // prosojnost je 25 %

Takšen API je resnično užitek uporabljati!

Pregled metod

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

Ustvari novo true color sliko danih dimenzij. Privzeta barva je črna.

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

Naloži sliko iz datoteke in vrne njen tip v $detectedFormat.

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

Naloži sliko iz niza in vrne njen tip v $detectedFormat.

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

To funkcijo je nadomestil razred ImageColor, glejte barve.

static typeToExtension (int $type)string

Vrne končnico datoteke za dani tip.

static typeToMimeType (int $type)string

Vrne mime type za dani tip.

static extensionToType (string $extension)int

Vrne tip slike glede na končnico datoteke.

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

Vrne tip slike in v parametrih $width in $height tudi njene dimenzije.

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

Vrne tip slike iz niza in v parametrih $width in $height tudi njene dimenzije.

static isTypeSupported (int $type)bool

Ugotavlja, ali je podprt dani tip slike.

static getSupportedTypes(): array

Vrne polje podprtih tipov slike.

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

Izračuna dimenzije pravokotnika, ki obdaja besedilo v določeni pisavi in velikosti. Vrne asociativno polje, ki vsebuje ključe left, top, width, height. Levi rob je lahko tudi negativen, če se besedilo začne z levim podrezavanjem.

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

Vrnite sliko, ki vsebuje afino transformirano sliko src z uporabo izbirnega območja obrezovanja. (več).

affineMatrixConcat (array $m1, array $m2)array

Vrne združitev dveh afinih transformacijskih matrik, kar je uporabno, če bi se na isto sliko moralo hkrati uporabiti več transformacij. (več).

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

Vrne matrično transformacijsko matriko. (več).

alphaBlending (bool $on)void

Omogoča dva različna načina risanja v slikah truecolor. V načinu mešanja določa komponenta alfa kanala barve, uporabljene v vseh funkcijah risanja, kot je na primer setPixel(), do kakšne mere naj bi bilo omogočeno prosojnost osnovne barve. Rezultat je, da se na tej točki samodejno zmeša obstoječa barva z risano barvo in rezultat shrani v sliko. Končni piksel je neprosojen. V načinu brez mešanja se risana barva kopira dobesedno z informacijami o alfa kanalu in nadomesti ciljni piksel. Način mešanja ni na voljo pri risanju na paletnih slikah. (več).

antialias (bool $on): void

Aktivirajte risanje zglajenih črt in poligonov. Ne podpira alfa kanalov. Deluje samo pri slikah truecolor.

Uporaba antialiased primitivov s prozorno barvo ozadja lahko povzroči nekatere nepričakovane rezultate. Metoda mešanja uporablja barvo ozadja kot vse druge barve. (več).

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

Nariše lok kroga s središčem v danih koordinatah. (več).

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

Vrne identifikator barve, ki predstavlja barvo, sestavljeno iz danih komponent RGB. Poklicati jo je treba za ustvarjanje vsake barve, ki naj bi se uporabila v sliki. (več).

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

Obnaša se enako kot colorAllocate() z dodatkom parametra prosojnosti $alpha. (več).

colorAt (int $x, int $y)int

Vrne indeks barve piksla na določenem mestu v sliki. Če je slika truecolor, ta funkcija vrne vrednost RGB tega piksla kot celo število. Uporabite bitni pomik in bitno maskiranje za dostop do ločenih vrednosti rdeče, zelene in modre komponente: (več).

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

Vrne indeks barve v paleti slike, ki je „najbližja“ podani vrednosti RGB. “Razdalja” med želeno barvo in vsako barvo v paleti se izračuna, kot da bi vrednosti RGB predstavljale točke v tridimenzionalnem prostoru. (več).

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

Vrne indeks barve v paleti slike, ki je „najbližja“ podani vrednosti RGB in ravni $alpha. (več).

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

Pridobite indeks barve, ki ima odtenek, belino in črnino najbližje dani barvi. (več).

colorDeallocate (int $color)void

De-alocira barvo, ki je bila prej dodeljena z colorAllocate() ali colorAllocateAlpha(). (več).

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

Vrne indeks podane barve v paleti slike. (več).

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

Vrne indeks podane barve + alfa v paleti slike. (več).

colorMatch (Image $image2)void

Prilagodi barve palete drugi sliki. (več).

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

Vrne indeks barve za želeno barvo, bodisi natančno barvo ali najbližjo možno alternativo. (več).

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

Vrne indeks barv za želeno barvo, bodisi natančno barvo ali najbližjo možno alternativo. (več).

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

Nastavi podani indeks v paleti na podano barvo. (več).

colorsForIndex (int $index)array

Pridobi barvo določenega indeksa. (več).

colorsTotal(): int

Vrne število barv v slikovni paleti. (več).

colorTransparent (?int $color=null)int

Pridobi ali nastavi prozorno barvo v sliki. (več).

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

Uporabi na sliki konvolucijsko matriko, uporablja dani koeficient in odmik. (več).

Zahteva prisotnost Bundled GD extension, zato morda ne bo delovala povsod.

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

Kopira del $src na sliko, začenši s koordinatami $srcX, $srcY s širino $srcW in višino $srcH. Definirani del bo kopiran na koordinate $dstX in $dstY. (več).

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

Kopira del $src na sliko, začenši s koordinatami $srcX, $srcY s širino $srcW in višino $srcH. Definirani del bo kopiran na koordinate $dstX in $dstY. (več).

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

Kopira del $src na sliko, začenši s koordinatami $srcX, $srcY s širino $srcW in višino $srcH. Definirani del bo kopiran na koordinate $dstX in $dstY.

Ta funkcija je identična copyMerge() z izjemo, da pri združevanju ohranja odtenek vira s pretvorbo ciljnih pikslov v sivo lestvico pred operacijo kopiranja. (več).

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

Kopira pravokotni del ene slike na drugo sliko, gladko interpolira vrednosti slikovnih pik, tako da zlasti pomanjšanje velikosti slike še vedno ohranja veliko jasnost.

Z drugimi besedami, copyResampled() vzame pravokotno območje iz $src širine $srcW in višine $srcH na položaju ($srcX, $srcY) in ga postavi v pravokotno območje slike širine $dstW in višine $dstH na položaju ($dstX, $dstY).

Če se izvorne in ciljne koordinate, širina in višina razlikujejo, se izvede ustrezno raztezanje ali pomanjšanje fragmenta slike. Koordinate se nanašajo na zgornji levi kot. To funkcijo je mogoče uporabiti za kopiranje območij znotraj iste slike, vendar če se območja prekrivajo, rezultati ne bodo predvidljivi. (več).

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

Kopira pravokotni del ene slike na drugo sliko. Z drugimi besedami, copyResized() pridobi pravokotno območje iz $src širine $srcW in višine $srcH na položaju ($srcX, $srcY) in ga postavi v pravokotno območje slike širine $dstW ] in višine $dstH na položaju ($dstX, $dstY).

Če se izvorne in ciljne koordinate, širina in višina razlikujejo, se izvede ustrezno raztezanje ali pomanjšanje fragmenta slike. Koordinate se nanašajo na zgornji levi kot. To funkcijo je mogoče uporabiti za kopiranje območij znotraj iste slike, vendar če se območja prekrivajo, rezultati ne bodo predvidljivi. (več).

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

Obreže sliko na dano pravokotno območje. Dimenzije je mogoče vnesti kot cela števila v pikslih ali nize v odstotkih (na primer '50%').

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

Samodejno obreže sliko glede na dani $mode. (več).

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

Nariše elipso s središčem na podanih koordinatah. (več).

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

Zapolni območje, začenši z dano koordinato (zgoraj levo je 0, 0) z dano $color. (več).

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

Nariše delni lok s središčem na podanih koordinatah. (več).

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

Nariše elipso s središčem na podanih koordinatah. (več).

filledPolygon (array $points, ImageColor $color)void

Ustvari v sliki zapolnjen mnogokotnik. (več).

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

Ustvari pravokotnik, zapolnjen z $color, v sliki, začenši s točko $x1 & $y1 in končajoč s točko $x2 & $y2. Točka 0, 0 je zgornji levi kot slike. (več).

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

Ustvari pravokotnik, zapolnjen z $color, v sliki, začenši s točko $left & $top s širino $width in višino $height. Točka 0, 0 je zgornji levi kot slike.

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

Izriše zapolnitev, katere barva roba je definirana z $border. Začetna točka zapolnitve je $x, $y (zgoraj levo je 0, 0) in območje je zapolnjeno z barvo $color. (več).

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

Uporabi dani filter $filtertype na sliki. (več).

flip (int $mode): void

Obrne sliko z uporabo danega $mode. (več).

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

Zapišite besedilo v sliko. (več).

gammaCorrect (float $inputgamma, float $outputgamma)void

Uporabi gama korekcijo na sliki glede na vhodno in izhodno gamo. (več).

getClip(): array

Vrne trenutno obrezovanje, tj. območje, preko katerega ne bodo narisani nobeni piksli. (več).

getHeight(): int

Vrne višino slike.

getImageResource(): resource|GdImage

Vrne izvirni resource.

getWidth(): int

Vrne širino slike.

interlace (?int $interlace=null)int

Vklopi ali izklopi prepleteni način. Če je prepleteni način nastavljen in je slika shranjena kot JPEG, bo shranjena kot progresivni JPEG. (več).

isTrueColor(): bool

Ugotovi, ali je slika truecolor. (več).

layerEffect (int $effect)void

Nastavite zastavico mešanja alfa za uporabo učinkov plastenja. (več).

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

Nariše črto med dvema danima točkama. (več).

openPolygon (array $points, ImageColor $color)void

Nariše na sliko odprt mnogokotnik. V nasprotju z polygon() med zadnjo in prvo točko ni narisana nobena črta. (več).

paletteCopy (Image $source)void

Kopira paleto iz $source v sliko. (več).

paletteToTrueColor(): void

Pretvori sliko, ki temelji na paleti, v polnobarvno sliko. (več).

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

Kopira $image v sliko na koordinate $left in $top. Koordinate je mogoče vnesti kot cela števila v pikslih ali nize v odstotkih (na primer '50%').

polygon (array $points, ImageColor $color)void

Ustvari v sliki mnogokotnik. (več).

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

Ustvari pravokotnik na podanih koordinatah. (več).

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

Ustvari pravokotnik na podanih koordinatah.

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

Spremeni velikost slike, več informacij. Dimenzije je mogoče vnesti kot cela števila v pikslih ali nize v odstotkih (na primer '50%').

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

Nastavi ali vrne ločljivost slike v DPI (pike na palec). Če ni podan noben od izbirnih parametrov, je trenutna ločljivost vrnjena kot indeksirano polje. Če je podan samo $resX, se vodoravna in navpična ločljivost nastavita na to vrednost. Če sta podana oba izbirna parametra, se vodoravna in navpična ločljivost nastavita na ti vrednosti.

Ločljivost se uporablja samo kot meta informacija, ko se slike berejo in zapisujejo v formate, ki podpirajo to vrsto informacij (trenutno PNG in JPEG). Nima vpliva na nobene operacije risanja. Privzeta ločljivost novih slik je 96 DPI. (več).

rotate (float $angle, int $backgroundColor)Image

Zasuče sliko z uporabo podanega $angle v stopinjah. Središče zasuka je središče slike in zasukana slika ima lahko drugačne dimenzije kot izvirna slika. (več).

Zahteva prisotnost Bundled GD extension, zato morda ne bo delovala povsod.

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

Shrani sliko v datoteko.

Kakovost stiskanja je v obsegu 0..100 za JPEG (privzeto 85), WEBP (privzeto 80) in AVIF (privzeto 30) ter 0..9 za PNG (privzeto 9). Če tip ni razviden iz končnice datoteke, ga lahko določite z eno od konstant ImageType.

saveAlpha (bool $saveflag)void

Nastavi zastavico, ali naj se pri shranjevanju slik PNG ohranijo popolne informacije o alfa kanalu (v nasprotju z enobarvno prosojnostjo).

Alfablending mora biti deaktiviran (alphaBlending(false)), da se alfa kanal najprej ohrani. (več).

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

Spremeni merilo slike z uporabo danega interpolacijskega algoritma. (več).

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

Izpiše sliko v brskalnik.

Kakovost stiskanja je v obsegu 0..100 za JPEG (privzeto 85), WEBP (privzeto 80) in AVIF (privzeto 30) ter 0..9 za PNG (privzeto 9).

setBrush (Image $brush)void

Nastavi sliko čopiča, ki se uporabi v vseh funkcijah risanja črt (na primer line() in polygon()) pri risanju s posebnimi barvami IMG_COLOR_BRUSHED ali IMG_COLOR_STYLEDBRUSHED. (več).

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

Nastavi trenutno obrezovanje, tj. območje, preko katerega ne bodo narisani nobeni piksli. (več).

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Nastavi metodo interpolacije, ki vpliva na metodi rotate() in affine(). (več).

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

Nariše piksel na podani koordinati. (več).

setStyle (array $style)void

Nastavi slog, ki naj ga uporabljajo vse funkcije risanja črt (na primer line() in polygon()) pri risanju s posebno barvo IMG_COLOR_STYLED ali črt slik z barvo IMG_COLOR_STYLEDBRUSHED. (več).

setThickness (int $thickness)void

Nastavi debelino črt pri risanju pravokotnikov, mnogokotnikov, lokov itd. na $thickness pikslov. (več).

setTile (Image $tile)void

Nastavi sliko ploščice, ki bo uporabljena v vseh funkcijah zapolnjevanja regij (na primer fill() in filledPolygon()), ko se zapolni s posebno barvo IMG_COLOR_TILED.

Ploščica je slika, ki se uporablja za zapolnitev območja s ponavljajočim se vzorcem. Vsako sliko je mogoče uporabiti kot ploščico in z nastavitvijo prozornega barvnega indeksa slike ploščice z colorTransparent() je mogoče ustvariti ploščico, kjer bodo določeni deli podložnega območja prosojni. (več).

sharpen(): Image

Ostrenje slike.

Zahteva prisotnost Bundled GD extension, zato morda ne bo delovala povsod.

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

Shrani sliko v niz.

Kakovost stiskanja je v obsegu 0..100 za JPEG (privzeto 85), WEBP (privzeto 80) in AVIF (privzeto 30) ter 0..9 za PNG (privzeto 9).

trueColorToPalette (bool $dither, int $ncolors)void

Pretvori sliko truecolor v paletno. (več).

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

Izpiše dano besedilo v sliko. (več).

različica: 4.0