Nette Documentation Preview

syntax
Slikovne funkcije
*****************

.[perex]
Razred [api:Nette\Utils\Image] poenostavlja manipulacijo slik, kot so spreminjanje velikosti, obrezovanje, ostrenje, risanje ali združevanje več slik.


PHP ima obsežen nabor funkcij za obdelavo slik. Vendar pa vmesnik API ni preveč prijeten. Ne bi bil Neat Framework, če bi pripravil seksi API.

Namestitev:

```shell
composer require nette/utils
```

Naslednji primeri predpostavljajo, da je definiran naslednji vzdevek razreda:

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


Ustvarjanje slike .[#toc-creating-an-image]
===========================================

Ustvarili bomo novo pravo barvno sliko, na primer z dimenzijami 100 × 200:

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

Po želji lahko določite barvo ozadja (privzeto je črna):

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

Sliko lahko naložimo iz datoteke:

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


Shranjevanje slike .[#toc-save-the-image]
=========================================

Sliko lahko shranite v datoteko:

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

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

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

Če format ni razviden iz končnice datoteke, ga lahko določite s [konstanto |#Formats]:

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

Sliko lahko namesto na disk zapišete v spremenljivko:

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

ali pošljete neposredno brskalniku z ustreznim glavo HTTP `Content-Type`:

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


Formati .[#toc-formats]
=======================

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

Formati so predstavljeni s konstantami `ImageType::JPEG`, `ImageType::PNG`, `ImageType::GIF`, `ImageType::WEBP`, `ImageType::AVIF` in `ImageType::BMP`.

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

Potrebujete zaznati format slike ob nalaganju? Metoda ga vrne v drugem parametru:

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

Dejansko zaznavanje brez nalaganja slike izvede `Image::detectTypeFromFile()`.


Spreminjanje velikosti slike .[#toc-image-resize]
=================================================

Pogosta operacija je spreminjanje velikosti slike. Trenutne dimenzije se vrnejo z metodama `getWidth()` in `getHeight()`.

Za spreminjanje velikosti se uporablja metoda `resize()`. To je primer sorazmerne spremembe velikosti, tako da ne presega 500 × 300 pikslov (širina bo točno 500 pikslov ali višina bo točno 300 pikslov, ena od dimenzij se izračuna za ohranitev razmerja stranic):

```php
$image->resize(500, 300);
```

Nastavite lahko samo eno dimenzijo, druga pa bo izračunana:

```php
$image->resize(500, null); // širina 500px, višina auto

$image->resize(null, 300); // širina auto, višina 300px
```

Vsako dimenzijo lahko določite v odstotkih:

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

Na obnašanje spletne strani `resize` lahko vplivate z naslednjimi zastavicami. Vsi razen `Image::Stretch` ohranijo razmerje stranic.

|---------------------------------------------------------------------------------------
| Zastava | Opis
|---------------------------------------------------------------------------------------
| `Image::OrSmaller` (privzeto) | dobljene dimenzije bodo manjše ali enake, kot je določeno
| `Image::OrBigger` | zapolni ciljno območje in ga po možnosti razširi v eno smer
| `Image::Cover` | zapolni celotno območje in obreže, kar ga presega
| `Image::ShrinkOnly` | samo zmanjša velikost (ne razširi majhne slike)
| `Image::Stretch` | ne ohrani razmerja stranic


Zastave se posredujejo kot tretji argument funkcije:

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

Zastave je mogoče kombinirati:

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

Slike lahko obrnete navpično ali vodoravno tako, da eno od dimenzij (ali obe) določite kot negativno število:

```php
$flipped = $image->resize(null, '-100%'); // flip vertikalno

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

$flipped = $image->resize(-125, 500); // spreminjanje velikosti in obračanje v vodoravni smeri
```

Ko sliko zmanjšamo, jo lahko izboljšamo z ostrenjem:

```php
$image->sharpen();
```


Obrezovanje .[#toc-cropping]
============================

Metoda `crop()` se uporablja za pridelavo:

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

Tako kot pri `resize()` lahko vse vrednosti navedete v odstotkih. Odstotki za `$left` in `$top` so izračunani iz preostalega prostora, podobno kot pri lastnosti CSS `background-position`:

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

[* crop.svg *]


Sliko lahko tudi samodejno obrežete, npr. obrežete črne robove:

```php
$image->cropAuto(IMG_CROP_BLACK);
```

Metoda `cropAuto()` je objektna enkapsulacija funkcije `imagecropauto()`, za več informacij si oglejte [njeno dokumentacijo |https://www.php.net/manual/en/function.imagecropauto].


Barve .[#toc-colors]
====================

Z metodo `ImageColor::rgb()` lahko barvo določite z uporabo rdeče, zelene in modre (RGB) vrednosti. Po želji lahko določite tudi vrednost prosojnosti od 0 (popolnoma prosojno) do 1 (popolnoma neprosojno), tako kot v CSS.

```php
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
```

Metoda `ImageColor::hex()` vam omogoča, da barvo določite z uporabo šestnajstiške oblike, podobno kot v CSS. Podpira oblike `#rgb`, `#rrggbb`, `#rgba` in `#rrggbbaa`:

```php
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
```

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


Risanje in urejanje .[#toc-drawing-and-editing]
===============================================

Lahko rišete, pišete, uporabljate vse funkcije PHP za manipulacijo s slikami, glejte [Pregled metod |#Overview of methods], vendar v objektno usmerjenem ovoju:

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

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


Združitev več slik .[#toc-merge-multiple-images]
================================================

V sliko lahko preprosto vstavite drugo sliko:

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

// koordinate lahko nastavite tudi v odstotkih.
$blank->place($logo, '80%', '80%'); // v desnem spodnjem kotu
```

Pri lepljenju se upošteva kanal alfa, poleg tega lahko vplivamo na prosojnost vstavljene slike (ustvarili bomo tako imenovani vodni znak):

```php
$blank->place($image, '80%', '80%', 25); // preglednost je 25 %.
```

Tak API je res užitek uporabljati, kajne?


Pregled metod .[#toc-overview-of-methods]
=========================================


static fromBlank(int $width, int $height, ?ImageColor $color=null): Image .[method]
-----------------------------------------------------------------------------------
Ustvari novo pravo barvno sliko danih dimenzij. Privzeta barva je črna.


static fromFile(string $file, int &$detectedFormat=null): Image .[method]
-------------------------------------------------------------------------
Prebere sliko iz datoteke in vrne njeno [vrsto |#Formats] v `$detectedFormat`.


static fromString(string $s, int &$detectedFormat=null): Image .[method]
------------------------------------------------------------------------
Preberi sliko iz niza in vrne njeno [vrsto |#Formats] v `$detectedFormat`.


static rgb(int $red, int $green, int $blue, int $transparency=0): array .[method][deprecated]
---------------------------------------------------------------------------------------------
To funkcijo je nadomestil razred `ImageColor`, glejte [barve |#Colors].


static typeToExtension(int $type): string .[method]
---------------------------------------------------
Vrne končnico datoteke za dano [vrsto |#Formats].


static typeToMimeType(int $type): string .[method]
--------------------------------------------------
Vrne tip mime za dani [tip |#Formats].


static extensionToType(string $extension): int .[method]
--------------------------------------------------------
Vrne [vrsto |#Formats] slike glede na razširitev datoteke.


static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int .[method]
--------------------------------------------------------------------------------------------
Vrne [vrsto |#Formats] slikovne datoteke in v parametrih `$width` in `$height` tudi njene dimenzije.


static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int .[method]
-------------------------------------------------------------------------------------------
Vrne [vrsto |#Formats] slike iz niza in v parametrih `$width` in `$height` tudi njene dimenzije.


static isTypeSupported(int $type): bool .[method]
-------------------------------------------------
Ugotovi, ali je dana [vrsta |#Formats] slike podprta.


static getSupportedTypes(): array .[method]{data-version:4.0.4}
---------------------------------------------------------------
Vrne polje podprtih tipov slik (konstante `ImageType::XXX`).


static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array .[method]
------------------------------------------------------------------------------------------------------------------------
Izračuna dimenzije pravokotnika, ki obkroža besedilo v določeni pisavi in velikosti. Vrne asociativno polje, ki vsebuje ključe `left`, `top`, `width`, `height`. Levi rob je lahko negativen, če se besedilo začne z levim previsom.


affine(array $affine, ?array $clip=null): Image .[method]
---------------------------------------------------------
Vrne sliko, ki vsebuje afino transformirano sliko src z uporabo neobveznega območja obrezovanja. ([več |https://www.php.net/manual/en/function.imageaffine]).


affineMatrixConcat(array $m1, array $m2): array .[method]
---------------------------------------------------------
Vrne združitev dveh matrik afine transformacije, kar je uporabno, če je treba na isto sliko uporabiti več transformacij naenkrat. ([več |https://www.php.net/manual/en/function.imageaffinematrixconcat])


affineMatrixGet(int $type, ?mixed $options=null): array .[method]
-----------------------------------------------------------------
Vrne matriko afine transformacije. ([več |https://www.php.net/manual/en/function.imageaffinematrixget])


alphaBlending(bool $on): void .[method]
---------------------------------------
Omogoča dva različna načina risanja na slike v pravih barvah. V načinu mešanja komponenta kanala alfa barve, ki se posreduje vsem funkcijam risanja, kot je `setPixel()`, določa, koliko osnovne barve naj se preliva skozi. Zato samodejno zmeša obstoječo barvo na tej točki z barvo risbe in rezultat shrani v sliko. Nastali piksel je neprosojen. V načinu brez mešanja se barva risbe dobesedno kopira z informacijami kanala alfa in nadomesti ciljno piko. Način mešanja ni na voljo pri risanju na slike iz palete. ([več |https://www.php.net/manual/en/function.imagealphablending])


antialias(bool $on): void .[method]
-----------------------------------
Aktivirajte metode hitrega risanja z izravnavo za črte in žične poligone. Ne podpira sestavin alfa. Deluje z neposrednim mešanjem. Deluje samo s slikami v pravih barvah.

Uporaba izravnanih primitivov s prozorno barvo ozadja lahko privede do nepričakovanih rezultatov. Metoda mešanja uporablja barvo ozadja kot vse druge barve. Pomanjkanje podpore za komponento alfa ne omogoča metode za izravnavo na podlagi alfa. ([več |https://www.php.net/manual/en/function.imageantialias])


arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void .[method]
---------------------------------------------------------------------------------------------------------------------------
Nariše lok kroga s središčem na danih koordinatah. ([več |https://www.php.net/manual/en/function.imagearc])


colorAllocate(int $red, int $green, int $blue): int .[method]
-------------------------------------------------------------
Vrne identifikator barve, ki predstavlja barvo, sestavljeno iz danih komponent RGB. Klicati ga je treba za ustvarjanje vsake barve, ki bo uporabljena v sliki. ([več |https://www.php.net/manual/en/function.imagecolorallocate])


colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
------------------------------------------------------------------------------
Obnaša se enako kot `colorAllocate()` z dodatkom parametra preglednosti `$alpha`. ([več |https://www.php.net/manual/en/function.imagecolorallocatealpha])


colorAt(int $x, int $y): int .[method]
--------------------------------------
Vrne indeks barve piksla na določenem mestu v sliki. Če je slika pravi barvni prikaz, ta funkcija vrne vrednost RGB te pike kot celo število. Za dostop do različnih vrednosti rdeče, zelene in modre komponente uporabite premikanje bitov in maskiranje: ([več |https://www.php.net/manual/en/function.imagecolorat])


colorClosest(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
Vrne indeks barve v paleti slike, ki je "najbližja" določeni 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č |https://www.php.net/manual/en/function.imagecolorclosest])


colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
Vrne indeks barve v paleti slike, ki je "najbližja" določeni vrednosti RGB in ravni `$alpha`. ([več |https://www.php.net/manual/en/function.imagecolorclosestalpha])


colorClosestHWB(int $red, int $green, int $blue): int .[method]
---------------------------------------------------------------
Pridobi indeks barve, ki je po odtenku, belini in črnini najbližja dani barvi. ([več |https://www.php.net/manual/en/function.imagecolorclosesthwb])


colorDeallocate(int $color): void .[method]
-------------------------------------------
Odstrani barvo, ki je bila prej dodeljena s `colorAllocate()` ali `colorAllocateAlpha()`. ([več |https://www.php.net/manual/en/function.imagecolordeallocate])


colorExact(int $red, int $green, int $blue): int .[method]
----------------------------------------------------------
Vrne indeks določene barve v paleti slike. ([več |https://www.php.net/manual/en/function.imagecolorexact])


colorExactAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
---------------------------------------------------------------------------
Vrne indeks določene barve+alfa v paleti slike. ([več |https://www.php.net/manual/en/function.imagecolorexactalpha])


colorMatch(Image $image2): void .[method]
-----------------------------------------
Barve različice slike na paleti se bolj približajo pravi barvni različici. ([več |https://www.php.net/manual/en/function.imagecolormatch])


colorResolve(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
Vrne barvni indeks za zahtevano barvo, bodisi točno določeno barvo bodisi najbližjo možno alternativo. ([več |https://www.php.net/manual/en/function.imagecolorresolve])


colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
Vrne barvni indeks za zahtevano barvo, bodisi točno določeno barvo bodisi najbližjo možno alternativo. ([več |https://www.php.net/manual/en/function.imagecolorresolvealpha])


colorSet(int $index, int $red, int $green, int $blue): void .[method]
---------------------------------------------------------------------
To nastavi določen indeks v paleti na določeno barvo. ([več |https://www.php.net/manual/en/function.imagecolorset])


colorsForIndex(int $index): array .[method]
-------------------------------------------
Pridobi barvo za določen indeks. ([več |https://www.php.net/manual/en/function.imagecolorsforindex])


colorsTotal(): int .[method]
----------------------------
Vrne število barv v slikovni paleti ([več |https://www.php.net/manual/en/function.imagecolorstotal]).


colorTransparent(?int $color=null): int .[method]
-------------------------------------------------
Pridobi ali nastavi prozorno barvo na sliki. ([več |https://www.php.net/manual/en/function.imagecolortransparent])


convolution(array $matrix, float $div, float $offset): void .[method]
---------------------------------------------------------------------
Uporabi konvolucijsko matriko na sliki z uporabo danega koeficienta in odmika. ([več |https://www.php.net/manual/en/function.imageconvolution])

.[note]
Zahteva razširitev *Bundled GD extension*, zato ni gotovo, da bo delovala povsod.


copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void .[method]
--------------------------------------------------------------------------------------------------
Kopira del `$src` na sliko z začetkom na koordinatah `$srcX`, `$srcY` s širino `$srcW` in višino `$srcH`. Določeni del bo kopiran na koordinate `$dstX` in `$dstY`. ([več |https://www.php.net/manual/en/function.imagecopy])


copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void .[method]
---------------------------------------------------------------------------------------------------------------------
Kopira del `$src` na sliko z začetkom na koordinatah `$srcX`, `$srcY` s širino `$srcW` in višino `$srcH`. Določeni del bo kopiran na koordinate `$dstX` in `$dstY`. ([več |https://www.php.net/manual/en/function.imagecopymerge])


copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void .[method]
-------------------------------------------------------------------------------------------------------------------------
Kopira del `$src` na sliko z začetkom na koordinatah `$srcX`, `$srcY` s širino `$srcW` in višino `$srcH`. Določeni del bo kopiran na koordinate `$dstX` in `$dstY`.

Ta funkcija je enaka funkciji `copyMerge()`, le da pri združevanju ohrani odtenek vira tako, da ciljne piksle pred kopiranjem pretvori v sivo lestvico. ([več |https://www.php.net/manual/en/function.imagecopymergegray])


copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void .[method]
---------------------------------------------------------------------------------------------------------------------------------
Kopira pravokotni del ene slike na drugo sliko in gladko interpolira vrednosti slikovnih pik, tako da zlasti pri zmanjšanju velikosti slike še vedno ohrani 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žaj (`$dstX`,`$dstY`).

Če se izvorne in ciljne koordinate ter širine in višine razlikujejo, se fragment slike ustrezno raztegne ali skrči. Koordinate se nanašajo na zgornji levi kot. To funkcijo lahko uporabite za kopiranje območij znotraj iste slike, vendar bodo rezultati nepredvidljivi, če se območja prekrivajo. ([več |https://www.php.net/manual/en/function.imagecopyresampled])


copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void .[method]
-------------------------------------------------------------------------------------------------------------------------------
Kopira pravokotni del ene slike na drugo sliko. Z drugimi besedami, `copyResized()` 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žaj (`$dstX`,`$dstY`).

Če se izvorne in ciljne koordinate ter širine in višine razlikujejo, se fragment slike ustrezno raztegne ali skrči. Koordinate se nanašajo na zgornji levi kot. To funkcijo lahko uporabite za kopiranje območij znotraj iste slike, vendar bodo rezultati nepredvidljivi, če se območja prekrivajo. ([več |https://www.php.net/manual/en/function.imagecopyresized])


crop(int|string $left, int|string $top, int|string $width, int|string $height): Image .[method]
-----------------------------------------------------------------------------------------------
Obreže sliko na podano pravokotno območje. Dimenzije lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. `'50%'`).


cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image .[method]
-------------------------------------------------------------------------------------
Samodejno obreže sliko v skladu z danim `$mode`. ([več |https://www.php.net/manual/en/function.imagecropauto])


ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void .[method]
-----------------------------------------------------------------------------------------------
Nariše elipso s središčem na določenih koordinatah. ([več |https://www.php.net/manual/en/function.imageellipse])


fill(int $x, int $y, ImageColor $color): void .[method]
-------------------------------------------------------
Izvede zapolnitev z zalivko, ki se začne na dani koordinati (levo zgoraj je 0, 0) z danim `$color` v sliki. ([več |https://www.php.net/manual/en/function.imagefill])


filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void .[method]
---------------------------------------------------------------------------------------------------------------------------------------------
Nariše delni lok s središčem na določeni koordinati na sliki. ([več |https://www.php.net/manual/en/function.imagefilledarc])


filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void .[method]
-----------------------------------------------------------------------------------------------------
Nariše elipso s središčem na določeni koordinati na sliki. ([več |https://www.php.net/manual/en/function.imagefilledellipse])


filledPolygon(array $points, ImageColor $color): void .[method]
---------------------------------------------------------------
Ustvari zapolnjen poligon v $sliki. ([več |https://www.php.net/manual/en/function.imagefilledpolygon])


filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------
Ustvari pravokotnik, zapolnjen s `$color` na sliki, ki se začne pri `$x1` in `$y1` ter konča pri `$x2` in `$y2`. Točka 0, 0 je zgornji levi vogal slike. ([več) |https://www.php.net/manual/en/function.imagefilledrectangle]


filledRectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------------------
Ustvari pravokotnik, zapolnjen s `$color` na sliki, ki se začne v točki `$left` in `$top`, s širino `$width` in višino `$height`. Točka 0, 0 je zgornji levi vogal slike.


fillToBorder(int $x, int $y, int $border, ImageColor $color): void .[method]
----------------------------------------------------------------------------
Izvede zalivko, katere barva roba je določena s `$border`. Začetna točka za zapolnitev je `$x`, `$y` (levo zgoraj je 0, 0), območje pa je zapolnjeno z barvo `$color`. ([več |https://www.php.net/manual/en/function.imagefilltoborder])


filter(int $filtertype, int ...$args): void .[method]
-----------------------------------------------------
Na sliko uporabi dani filter `$filtertype`. ([več |https://www.php.net/manual/en/function.imagefilter])


flip(int $mode): void .[method]
-------------------------------
Obrne sliko z uporabo danega `$mode`. ([več |https://www.php.net/manual/en/function.imageflip])


ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
----------------------------------------------------------------------------------------------------------------------------------------
Napišite besedilo na sliko. ([več) |https://www.php.net/manual/en/function.imagefttext]


gammaCorrect(float $inputgamma, float $outputgamma): void .[method]
-------------------------------------------------------------------
Uporabi popravek gama za sliko, če sta podana vhodna in izhodna gama. ([več |https://www.php.net/manual/en/function.imagegammacorrect])


getClip(): array .[method]
--------------------------
Pridobi trenutni obrezovalni pravokotnik, tj. območje, zunaj katerega se ne bodo izrisale nobene piksle. ([več |https://www.php.net/manual/en/function.imagegetclip])


getHeight(): int .[method]
--------------------------
Vrne višino slike.


getImageResource(): resource|GdImage .[method]
----------------------------------------------
Vrne izvirni vir.


getWidth(): int .[method]
-------------------------
Vrne širino slike.


interlace(?int $interlace=null): int .[method]
----------------------------------------------
Vklopi ali izklopi bit prepletanja. Če je nastavljen bit prepletanja in se slika uporablja kot slika JPEG, se slika ustvari kot progresivni JPEG. ([več |https://www.php.net/manual/en/function.imageinterlace])


isTrueColor(): bool .[method]
-----------------------------
Ugotovi, ali je slika prava barva. ([več |https://www.php.net/manual/en/function.imageistruecolor])


layerEffect(int $effect): void .[method]
----------------------------------------
Nastavite zastavico mešanja alfa, če želite uporabiti učinke plastenja. ([več |https://www.php.net/manual/en/function.imagelayereffect])


line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
---------------------------------------------------------------------------
Nariše črto med dvema danima točkama. ([več |https://www.php.net/manual/en/function.imageline])


openPolygon(array $points, ImageColor $color): void .[method]
-------------------------------------------------------------
Na sliko nariše odprt poligon. V nasprotju s spletno stranjo `polygon()` med zadnjo in prvo točko ni potegnjena črta. ([več |https://www.php.net/manual/en/function.imageopenpolygon])


paletteCopy(Image $source): void .[method]
------------------------------------------
Kopira paleto s spletne strani `$source` na sliko. ([več |https://www.php.net/manual/en/function.imagepalettecopy])


paletteToTrueColor(): void .[method]
------------------------------------
Pretvarja sliko na podlagi palete, ustvarjeno s funkcijami, kot je `create()`, v pravo barvno sliko, kot je `createtruecolor()`. ([več |https://www.php.net/manual/en/function.imagepalettetotruecolor])


place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image .[method]
---------------------------------------------------------------------------------------------
Kopira `$image` v sliko na koordinatah `$left` in `$top`. Koordinate lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. `'50%'`).


polygon(array $points, ImageColor $color): void .[method]
---------------------------------------------------------
Ustvari poligon na sliki. ([več |https://www.php.net/manual/en/function.imagepolygon])


rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
--------------------------------------------------------------------------------
Ustvari pravokotnik, ki se začne na določenih koordinatah. ([več |https://www.php.net/manual/en/function.imagerectangle])


rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------------
Ustvari pravokotnik na danih koordinatah.


resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image .[method]
-------------------------------------------------------------------------------------------
Skaliranje slike, glejte [več informacij |#Image Resize]. Dimenzije lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. `'50%'`).


resolution(?int $resX=null, ?int $resY=null): mixed .[method]
-------------------------------------------------------------
Omogoča nastavitev in pridobitev ločljivosti slike v DPI (točkah na palec). Če ni podan nobeden od neobveznih parametrov, se trenutna ločljivost vrne kot indeksirano polje. Če je podan samo naslov `$resX`, se vodoravna in navpična ločljivost nastavita na to vrednost. Če sta podana oba neobvezna parametra, se vodoravna in navpična ločljivost nastavita na ti vrednosti.

Ločljivost se kot meta informacija uporablja le pri branju slik iz formatov, ki podpirajo tovrstne informacije (trenutno sta to formata PNG in JPEG), in pri zapisovanju v te formate. To ne vpliva na nobeno risanje. Privzeta ločljivost novih slik je 96 DPI. ([več |https://www.php.net/manual/en/function.imageresolution])


rotate(float $angle, int $backgroundColor): Image .[method]
-----------------------------------------------------------
Obrne sliko z uporabo danega `$angle` v stopinjah. Središče vrtenja je središče slike, zasukana slika pa ima lahko drugačne dimenzije kot izvirna slika. ([več |https://www.php.net/manual/en/function.imagerotate])

.[note]
Zahteva razširitev *Bundled GD extension*, zato ni gotovo, da bo delovala povsod.


save(string $file, ?int $quality=null, ?int $type=null): void .[method]
-----------------------------------------------------------------------
Sliko shrani v datoteko.

Kakovost stiskanja je v območju 0..100 za JPEG (privzeto 85), WEBP (privzeto 80) in AVIF (privzeto 30) ter 0..9 za PNG (privzeto 9). Če vrsta ni razvidna iz končnice datoteke, jo lahko določite z eno od konstant `ImageType`.


saveAlpha(bool $saveflag): void .[method]
-----------------------------------------
Nastavi zastavico, ki določa, ali naj se pri shranjevanju slik PNG ohranijo popolne informacije o kanalu alfa (v nasprotju z enobarvno prosojnostjo).

Če želite ohraniti kanal alfa, morate onemogočiti funkcijo alphablending (`alphaBlending(false)`). ([več |https://www.php.net/manual/en/function.imagesavealpha])


scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image .[method]
--------------------------------------------------------------------------------------
Skalira sliko z uporabo danega algoritma interpolacije. ([več |https://www.php.net/manual/en/function.imagescale])


send(int $type=ImageType::JPEG, ?int $quality=null): void .[method]
-------------------------------------------------------------------
Izpiše sliko v brskalnik.

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


setBrush(Image $brush): void .[method]
--------------------------------------
Nastavi sliko čopiča, ki jo uporabljajo vse funkcije za risanje črt (kot sta `line()` in `polygon()`) pri risanju s posebnimi barvami IMG_COLOR_BRUSHED ali IMG_COLOR_STYLEDBRUSHED. ([več |https://www.php.net/manual/en/function.imagesetbrush])


setClip(int $x1, int $y1, int $x2, int $y2): void .[method]
-----------------------------------------------------------
Nastavi trenutni pravokotnik za obrezovanje, tj. območje, zunaj katerega se piksli ne bodo izrisali. ([več |https://www.php.net/manual/en/function.imagesetclip])


setInterpolation(int $method=IMG_BILINEAR_FIXED): void .[method]
----------------------------------------------------------------
Nastavi metodo interpolacije, ki vpliva na metodi `rotate()` in `affine()`. ([več |https://www.php.net/manual/en/function.imagesetinterpolation])


setPixel(int $x, int $y, ImageColor $color): void .[method]
-----------------------------------------------------------
Nariše piksel na določeni koordinati. ([več |https://www.php.net/manual/en/function.imagesetpixel])


setStyle(array $style): void .[method]
--------------------------------------
Nastavi slog, ki ga bodo uporabljale vse funkcije za risanje črt (na primer `line()` in `polygon()`), ko bodo risale s posebno barvo IMG_COLOR_STYLED ali črte slik z barvo IMG_COLOR_STYLEDBRUSHED. ([več |https://www.php.net/manual/en/function.imagesetstyle])


setThickness(int $thickness): void .[method]
--------------------------------------------
Nastavi debelino črt, narisanih pri risanju pravokotnikov, mnogokotnikov, lokov itd., na `$thickness` pikslov. ([več |https://www.php.net/manual/en/function.imagesetthickness])


setTile(Image $tile): void .[method]
------------------------------------
Nastavi sliko ploščice, ki jo uporabljajo vse funkcije za zapolnitev območja (kot sta `fill()` in `filledPolygon()`) pri zapolnjevanju s posebno barvo IMG_COLOR_TILED.

Ploščica je slika, ki se uporablja za zapolnitev območja s ponavljajočim se vzorcem. Kot ploščico lahko uporabite katero koli sliko, z nastavitvijo indeksa prozorne barve slike ploščice s `colorTransparent()` pa lahko ustvarite ploščico, ki omogoča, da določeni deli osnovnega območja prosevajo. ([več |https://www.php.net/manual/en/function.imagesettile])


sharpen(): Image .[method]
--------------------------
Nekoliko izostri sliko.

.[note]
Zahteva razširitev *Bundled GD extension*, zato ni gotovo, da bo delovala povsod.


toString(int $type=ImageType::JPEG, ?int $quality=null): string .[method]
-------------------------------------------------------------------------
Izpiše sliko v niz.

Kakovost stiskanja je v območju 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 .[method]
--------------------------------------------------------------
Pretvori sliko truecolor v sliko palete. ([več |https://www.php.net/manual/en/function.imagetruecolortopalette])


ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
-----------------------------------------------------------------------------------------------------------------------------------------
V sliko zapiše podano besedilo. ([več) |https://www.php.net/manual/en/function.imagettftext]

Slikovne funkcije

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

PHP ima obsežen nabor funkcij za obdelavo slik. Vendar pa vmesnik API ni preveč prijeten. Ne bi bil Neat Framework, če bi pripravil seksi API.

Namestitev:

composer require nette/utils

Naslednji primeri predpostavljajo, da je definiran naslednji vzdevek razreda:

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

Ustvarjanje slike

Ustvarili bomo novo pravo barvno sliko, na primer z dimenzijami 100 × 200:

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

Po želji lahko določite barvo ozadja (privzeto je črna):

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

Sliko lahko naložimo iz datoteke:

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

Shranjevanje slike

Sliko lahko shranite v datoteko:

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

Določimo lahko kakovost stiskanja v območju 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 format ni razviden iz končnice datoteke, ga lahko določite s konstanto:

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

Sliko lahko namesto na disk zapišete v spremenljivko:

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

ali pošljete neposredno brskalniku z ustreznim glavo HTTP Content-Type:

// pošilja 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 lahko preverite s funkcijo isTypeSupported(). Animacije niso podprte.

Formati so predstavljeni s konstantami ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF in ImageType::BMP.

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

Potrebujete zaznati format slike ob nalaganju? Metoda ga vrne v drugem parametru:

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

Dejansko zaznavanje brez nalaganja slike izvede Image::detectTypeFromFile().

Spreminjanje velikosti slike

Pogosta operacija je spreminjanje velikosti slike. Trenutne dimenzije se vrnejo z metodama getWidth() in getHeight().

Za spreminjanje velikosti se uporablja metoda resize(). To je primer sorazmerne spremembe velikosti, tako da ne presega 500 × 300 pikslov (širina bo točno 500 pikslov ali višina bo točno 300 pikslov, ena od dimenzij se izračuna za ohranitev razmerja stranic):

$image->resize(500, 300);

Nastavite lahko samo eno dimenzijo, druga pa bo izračunana:

$image->resize(500, null); // širina 500px, višina auto

$image->resize(null, 300); // širina auto, višina 300px

Vsako dimenzijo lahko določite v odstotkih:

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

Na obnašanje spletne strani resize lahko vplivate z naslednjimi zastavicami. Vsi razen Image::Stretch ohranijo razmerje stranic.

Zastava Opis
Image::OrSmaller (privzeto) dobljene dimenzije bodo manjše ali enake, kot je določeno
Image::OrBigger zapolni ciljno območje in ga po možnosti razširi v eno smer
Image::Cover zapolni celotno območje in obreže, kar ga presega
Image::ShrinkOnly samo zmanjša velikost (ne razširi majhne slike)
Image::Stretch ne ohrani razmerja stranic

Zastave se posredujejo kot tretji argument funkcije:

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

Zastave je mogoče kombinirati:

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

Slike lahko obrnete navpično ali vodoravno tako, da eno od dimenzij (ali obe) določite kot negativno število:

$flipped = $image->resize(null, '-100%'); // flip vertikalno

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

$flipped = $image->resize(-125, 500); // spreminjanje velikosti in obračanje v vodoravni smeri

Ko sliko zmanjšamo, jo lahko izboljšamo z ostrenjem:

$image->sharpen();

Obrezovanje

Metoda crop() se uporablja za pridelavo:

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

Tako kot pri resize() lahko vse vrednosti navedete v odstotkih. Odstotki za $left in $top so izračunani iz preostalega prostora, podobno kot pri lastnosti CSS background-position:

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

Sliko lahko tudi samodejno obrežete, npr. obrežete črne robove:

$image->cropAuto(IMG_CROP_BLACK);

Metoda cropAuto() je objektna enkapsulacija funkcije imagecropauto(), za več informacij si oglejte njeno dokumentacijo.

Barve

Z metodo ImageColor::rgb() lahko barvo določite z uporabo rdeče, zelene in modre (RGB) vrednosti. Po želji lahko določite tudi vrednost prosojnosti od 0 (popolnoma prosojno) do 1 (popolnoma neprosojno), tako kot v CSS.

$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue

Metoda ImageColor::hex() vam omogoča, da barvo določite z uporabo šestnajstiške oblike, podobno kot v CSS. Podpira oblike #rgb, #rrggbb, #rgba in #rrggbbaa:

$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green

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

Risanje in urejanje

Lahko rišete, pišete, uporabljate vse funkcije PHP za manipulacijo s slikami, glejte Pregled metod, vendar v objektno usmerjenem ovoju:

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

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

Združitev več slik

V sliko lahko preprosto vstavite drugo sliko:

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

// koordinate lahko nastavite tudi v odstotkih.
$blank->place($logo, '80%', '80%'); // v desnem spodnjem kotu

Pri lepljenju se upošteva kanal alfa, poleg tega lahko vplivamo na prosojnost vstavljene slike (ustvarili bomo tako imenovani vodni znak):

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

Tak API je res užitek uporabljati, kajne?

Pregled metod

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

Ustvari novo pravo barvno sliko danih dimenzij. Privzeta barva je črna.

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

Prebere sliko iz datoteke in vrne njeno vrsto v $detectedFormat.

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

Preberi sliko iz niza in vrne njeno vrsto 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 dano vrsto.

static typeToMimeType(int $type)string

Vrne tip mime za dani tip.

static extensionToType(string $extension)int

Vrne vrsto slike glede na razširitev datoteke.

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

Vrne vrsto slikovne datoteke in v parametrih $width in $height tudi njene dimenzije.

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

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

static isTypeSupported(int $type)bool

Ugotovi, ali je dana vrsta slike podprta.

static getSupportedTypes(): array

Vrne polje podprtih tipov slik (konstante ImageType::XXX).

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

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

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

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

affineMatrixConcat(array $m1, array $m2)array

Vrne združitev dveh matrik afine transformacije, kar je uporabno, če je treba na isto sliko uporabiti več transformacij naenkrat. (več)

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

Vrne matriko afine transformacije. (več)

alphaBlending(bool $on): void

Omogoča dva različna načina risanja na slike v pravih barvah. V načinu mešanja komponenta kanala alfa barve, ki se posreduje vsem funkcijam risanja, kot je setPixel(), določa, koliko osnovne barve naj se preliva skozi. Zato samodejno zmeša obstoječo barvo na tej točki z barvo risbe in rezultat shrani v sliko. Nastali piksel je neprosojen. V načinu brez mešanja se barva risbe dobesedno kopira z informacijami kanala alfa in nadomesti ciljno piko. Način mešanja ni na voljo pri risanju na slike iz palete. (več)

antialias(bool $on): void

Aktivirajte metode hitrega risanja z izravnavo za črte in žične poligone. Ne podpira sestavin alfa. Deluje z neposrednim mešanjem. Deluje samo s slikami v pravih barvah.

Uporaba izravnanih primitivov s prozorno barvo ozadja lahko privede do nepričakovanih rezultatov. Metoda mešanja uporablja barvo ozadja kot vse druge barve. Pomanjkanje podpore za komponento alfa ne omogoča metode za izravnavo na podlagi alfa. (več)

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

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

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

Vrne identifikator barve, ki predstavlja barvo, sestavljeno iz danih komponent RGB. Klicati ga je treba za ustvarjanje vsake barve, ki bo uporabljena v sliki. (več)

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

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

colorAt(int $x, int $y)int

Vrne indeks barve piksla na določenem mestu v sliki. Če je slika pravi barvni prikaz, ta funkcija vrne vrednost RGB te pike kot celo število. Za dostop do različnih vrednosti rdeče, zelene in modre komponente uporabite premikanje bitov in maskiranje: (več)

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

Vrne indeks barve v paleti slike, ki je „najbližja“ določeni 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“ določeni vrednosti RGB in ravni $alpha. (več)

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

Pridobi indeks barve, ki je po odtenku, belini in črnini najbližja dani barvi. (več)

colorDeallocate(int $color)void

Odstrani barvo, ki je bila prej dodeljena s colorAllocate() ali colorAllocateAlpha(). (več)

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

Vrne indeks določene barve v paleti slike. (več)

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

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

colorMatch(Image $image2)void

Barve različice slike na paleti se bolj približajo pravi barvni različici. (več)

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

Vrne barvni indeks za zahtevano barvo, bodisi točno določeno barvo bodisi najbližjo možno alternativo. (več)

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

Vrne barvni indeks za zahtevano barvo, bodisi točno določeno barvo bodisi najbližjo možno alternativo. (več)

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

To nastavi določen indeks v paleti na določeno barvo. (več)

colorsForIndex(int $index)array

Pridobi barvo za določen indeks. (več)

colorsTotal(): int

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

colorTransparent(?int $color=null)int

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

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

Uporabi konvolucijsko matriko na sliki z uporabo danega koeficienta in odmika. (več)

Zahteva razširitev Bundled GD extension, zato ni gotovo, da bo delovala povsod.

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

Kopira del $src na sliko z začetkom na koordinatah $srcX, $srcY s širino $srcW in višino $srcH. Določeni 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 z začetkom na koordinatah $srcX, $srcY s širino $srcW in višino $srcH. Določeni 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 z začetkom na koordinatah $srcX, $srcY s širino $srcW in višino $srcH. Določeni del bo kopiran na koordinate $dstX in $dstY.

Ta funkcija je enaka funkciji copyMerge(), le da pri združevanju ohrani odtenek vira tako, da ciljne piksle pred kopiranjem pretvori v sivo lestvico. (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 in gladko interpolira vrednosti slikovnih pik, tako da zlasti pri zmanjšanju velikosti slike še vedno ohrani 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žaj ($dstX,$dstY).

Če se izvorne in ciljne koordinate ter širine in višine razlikujejo, se fragment slike ustrezno raztegne ali skrči. Koordinate se nanašajo na zgornji levi kot. To funkcijo lahko uporabite za kopiranje območij znotraj iste slike, vendar bodo rezultati nepredvidljivi, če se območja prekrivajo. (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() 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žaj ($dstX,$dstY).

Če se izvorne in ciljne koordinate ter širine in višine razlikujejo, se fragment slike ustrezno raztegne ali skrči. Koordinate se nanašajo na zgornji levi kot. To funkcijo lahko uporabite za kopiranje območij znotraj iste slike, vendar bodo rezultati nepredvidljivi, če se območja prekrivajo. (več)

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

Obreže sliko na podano pravokotno območje. Dimenzije lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. '50%').

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

Samodejno obreže sliko v skladu z danim $mode. (več)

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

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

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

Izvede zapolnitev z zalivko, ki se začne na dani koordinati (levo zgoraj je 0, 0) z danim $color v sliki. (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 določeni koordinati na sliki. (več)

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

Nariše elipso s središčem na določeni koordinati na sliki. (več)

filledPolygon(array $points, ImageColor $color)void

Ustvari zapolnjen poligon v $sliki. (več)

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

Ustvari pravokotnik, zapolnjen s $color na sliki, ki se začne pri $x1 in $y1 ter konča pri $x2 in $y2. Točka 0, 0 je zgornji levi vogal slike. (več)

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

Ustvari pravokotnik, zapolnjen s $color na sliki, ki se začne v točki $left in $top, s širino $width in višino $height. Točka 0, 0 je zgornji levi vogal slike.

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

Izvede zalivko, katere barva roba je določena s $border. Začetna točka za zapolnitev je $x, $y (levo zgoraj je 0, 0), območje pa je zapolnjeno z barvo $color. (več)

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

Na sliko uporabi dani filter $filtertype. (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

Napišite besedilo na sliko. (več)

gammaCorrect(float $inputgamma, float $outputgamma)void

Uporabi popravek gama za sliko, če sta podana vhodna in izhodna gama. (več)

getClip(): array

Pridobi trenutni obrezovalni pravokotnik, tj. območje, zunaj katerega se ne bodo izrisale nobene piksle. (več)

getHeight(): int

Vrne višino slike.

getImageResource(): resource|GdImage

Vrne izvirni vir.

getWidth(): int

Vrne širino slike.

interlace(?int $interlace=null)int

Vklopi ali izklopi bit prepletanja. Če je nastavljen bit prepletanja in se slika uporablja kot slika JPEG, se slika ustvari kot progresivni JPEG. (več)

isTrueColor(): bool

Ugotovi, ali je slika prava barva. (več)

layerEffect(int $effect)void

Nastavite zastavico mešanja alfa, če želite uporabiti učinke 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

Na sliko nariše odprt poligon. V nasprotju s spletno stranjo polygon() med zadnjo in prvo točko ni potegnjena črta. (več)

paletteCopy(Image $source)void

Kopira paleto s spletne strani $source na sliko. (več)

paletteToTrueColor(): void

Pretvarja sliko na podlagi palete, ustvarjeno s funkcijami, kot je create(), v pravo barvno sliko, kot je createtruecolor(). (več)

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

Kopira $image v sliko na koordinatah $left in $top. Koordinate lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. '50%').

polygon(array $points, ImageColor $color)void

Ustvari poligon na sliki. (več)

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

Ustvari pravokotnik, ki se začne na določenih koordinatah. (več)

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

Ustvari pravokotnik na danih koordinatah.

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

Skaliranje slike, glejte več informacij. Dimenzije lahko posredujete kot cela števila v pikslih ali kot nize v odstotkih (npr. '50%').

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

Omogoča nastavitev in pridobitev ločljivosti slike v DPI (točkah na palec). Če ni podan nobeden od neobveznih parametrov, se trenutna ločljivost vrne kot indeksirano polje. Če je podan samo naslov $resX, se vodoravna in navpična ločljivost nastavita na to vrednost. Če sta podana oba neobvezna parametra, se vodoravna in navpična ločljivost nastavita na ti vrednosti.

Ločljivost se kot meta informacija uporablja le pri branju slik iz formatov, ki podpirajo tovrstne informacije (trenutno sta to formata PNG in JPEG), in pri zapisovanju v te formate. To ne vpliva na nobeno risanje. Privzeta ločljivost novih slik je 96 DPI. (več)

rotate(float $angle, int $backgroundColor)Image

Obrne sliko z uporabo danega $angle v stopinjah. Središče vrtenja je središče slike, zasukana slika pa ima lahko drugačne dimenzije kot izvirna slika. (več)

Zahteva razširitev Bundled GD extension, zato ni gotovo, da bo delovala povsod.

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

Sliko shrani v datoteko.

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

saveAlpha(bool $saveflag)void

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

Če želite ohraniti kanal alfa, morate onemogočiti funkcijo alphablending (alphaBlending(false)). (več)

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

Skalira sliko z uporabo danega algoritma interpolacije. (več)

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

Izpiše sliko v brskalnik.

Kakovost stiskanja je v območju 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 jo uporabljajo vse funkcije za risanje črt (kot sta 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 trenutni pravokotnik za obrezovanje, tj. območje, zunaj katerega se piksli ne bodo izrisali. (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 določeni koordinati. (več)

setStyle(array $style)void

Nastavi slog, ki ga bodo uporabljale vse funkcije za risanje črt (na primer line() in polygon()), ko bodo risale s posebno barvo IMG_COLOR_STYLED ali črte slik z barvo IMG_COLOR_STYLEDBRUSHED. (več)

setThickness(int $thickness)void

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

setTile(Image $tile)void

Nastavi sliko ploščice, ki jo uporabljajo vse funkcije za zapolnitev območja (kot sta fill() in filledPolygon()) pri zapolnjevanju s posebno barvo IMG_COLOR_TILED.

Ploščica je slika, ki se uporablja za zapolnitev območja s ponavljajočim se vzorcem. Kot ploščico lahko uporabite katero koli sliko, z nastavitvijo indeksa prozorne barve slike ploščice s colorTransparent() pa lahko ustvarite ploščico, ki omogoča, da določeni deli osnovnega območja prosevajo. (več)

sharpen(): Image

Nekoliko izostri sliko.

Zahteva razširitev Bundled GD extension, zato ni gotovo, da bo delovala povsod.

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

Izpiše sliko v niz.

Kakovost stiskanja je v območju 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 sliko palete. (več)

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

V sliko zapiše podano besedilo. (več)