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č).