Nette Documentation Preview

syntax
Képfunkciók
***********

.[perex]
A [api:Nette\Utils\Image] osztály leegyszerűsíti a képmanipulációt, például a méretváltoztatást, a képkivágást, az élesítést, a rajzolást vagy több kép összevonását.


A PHP széleskörű függvénykészlettel rendelkezik a képek manipulálásához. De az API nem túl szép. Nem lenne egy Neat Framework, ha egy szexi API-val állna elő.

Telepítés:

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

A következő példák feltételezik, hogy a következő osztály alias van definiálva:

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


Kép létrehozása .[#toc-creating-an-image]
=========================================

Létrehozunk egy új színes képet, például 100×200-as méretben:

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

Opcionálisan megadhat egy háttérszínt (alapértelmezett a fekete):

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

Vagy betöltjük a képet egy fájlból:

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

A támogatott formátumok a JPEG, PNG, GIF, WebP, AVIF és BMP, de a PHP verziójának támogatnia kell ezeket (ellenőrizze a `phpinfo()`, GD szakaszban). Az animációk nem támogatottak.

Fel kell ismernie a képformátumot betöltéskor? A módszer a formátumot adja vissza a második paraméterben:

```php
$image = Image::fromFile('nette.jpg', $type);
// $type az Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF vagy Image::BMP.
```

Csak a kép betöltése nélküli felismerést végzi a `Image::detectTypeFromFile()`.


A kép mentése .[#toc-save-the-image]
====================================

A kép elmenthető egy fájlba:

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

A tömörítési minőséget a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében pedig 0..9 tartományban adhatjuk meg:

```php
$image->save('resampled.jpg', 80); // JPEG, minőség 80%
```

Ha a formátum nem egyértelmű a fájlkiterjesztésből, akkor a `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP` konstansok valamelyikével adható meg:

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

A képet lemez helyett egy változóba is ki lehet írni:

```php
$data = $image->toString(Image::JPEG, 80); // JPEG, minőség 80%.
```

vagy közvetlenül a böngészőnek a megfelelő HTTP fejléccel `Content-Type`:

```php
// fejlécet küld Content-Type: image/png
$image->send(Image::PNG);
```


Kép átméretezése .[#toc-image-resize]
=====================================

Gyakori művelet a kép átméretezése. Az aktuális méreteket a `getWidth()` és a `getHeight()` metódusok adják vissza.

Az átméretezéshez a `resize()` módszer használható. Ez egy példa az arányos méretváltoztatásra úgy, hogy az nem haladja meg az 500×300 pixelt (vagy a szélesség lesz pontosan 500px, vagy a magasság lesz pontosan 300px, az egyik dimenzió a képarány megtartása érdekében kerül kiszámításra):

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

Lehetőség van arra, hogy csak egy dimenziót állítson be, és a második dimenzió kiszámításra kerül:

```php
$image->resize(500, null); // szélesség 500px, magasság auto

$image->resize(null, 300); // szélesség auto, magasság 300px
```

Bármelyik dimenzió megadható százalékban:

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

A `resize` viselkedését a következő jelzőkkel lehet befolyásolni. A `Image::Stretch` kivételével mindegyik megőrzi a képarányt.

|---------------------------------------------------------------------------------------
| Zászló | Leírás
|---------------------------------------------------------------------------------------
| `Image::OrSmaller` (alapértelmezett) | a kapott méretek kisebbek vagy egyenlőek lesznek a megadottakkal.
| `Image::OrBigger` | kitölti a célterületet, és esetleg egy irányba kiterjeszti azt.
| `Image::Cover` | kitölti az egész területet, és kivágja a túlnyúló részt.
| `Image::ShrinkOnly` | csak lefelé skálázódik (nem bővíti ki a kis képet)
| `Image::Stretch` | nem tartja meg a képarányt.


A zászlók a függvény harmadik argumentumaként kerülnek átadásra:

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

A zászlók kombinálhatók:

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

A képek függőlegesen vagy vízszintesen megfordíthatók az egyik dimenzió (vagy mindkettő) negatív számként történő megadásával:

```php
$flipped = $image->resize(null, '-100%'); // Függőlegesen átfordítva

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

$flipped = $image->resize(-125, 500); // átméretezés és átfordítás vízszintesen
```

A kép kicsinyítése után élesítéssel javíthatunk rajta:

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


Vágás .[#toc-cropping]
======================

A `crop()` módszer a termesztésre szolgál:

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

A `resize()` oldalhoz hasonlóan minden érték százalékban is megadható. A `$left` és a `$top` százalékos értékeit a fennmaradó helyből számítják ki, hasonlóan a `background-position` CSS-tulajdonsághoz:

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

[* crop.svg *]


A képet automatikusan is lehet vágni, pl. fekete élek vágása:

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

A `cropAuto()` metódus a `imagecropauto()` függvény objektumkapszulázása, további információkért lásd [a dokumentációját |https://www.php.net/manual/en/function.imagecropauto].


Rajzolás és szerkesztés .[#toc-drawing-and-editing]
===================================================

Rajzolhatsz, írhatsz, használhatod az összes PHP függvényt a képekkel való munkához, mint például az [imagefilledellipse() |https://www.php.net/manual/en/function.imagefilledellipse.php], de objektum stílusban:

```php
$image->filledEllipse($cx, $cy, $width, $height, Image::rgb(255, 0, 0, 63));
```

Lásd [a módszerek áttekintését |#Overview of Methods].


Több kép egyesítése .[#toc-merge-multiple-images]
=================================================

Könnyedén elhelyezhet egy másik képet a képbe:

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

// a koordináták százalékban is megadhatók
$blank->place($logo, '80%', '80%'); // közel a jobb alsó sarokhoz
```

Beillesztéskor az alfa-csatornát tiszteletben tartjuk, emellett befolyásolhatjuk a beillesztett kép átlátszóságát (ún. vízjelet hozunk létre):

```php
$blank->place($image, '80%', '80%', 25); // az átlátszóság 25 %-os
```

Egy ilyen API-t tényleg öröm használni, nem igaz?


A módszerek áttekintése .[#toc-overview-of-methods]
===================================================


static fromBlank(int $width, int $height, array $color=null): Image .[method]
-----------------------------------------------------------------------------
Új, valós színű képet hoz létre a megadott méretekkel. Az alapértelmezett szín a fekete.


static fromFile(string $file, int &$detectedFormat=null): Image .[method]
-------------------------------------------------------------------------
Beolvas egy képet egy fájlból, és visszaadja a típusát a `$detectedFormat` címen. A támogatott típusok: `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP`.


static fromString(string $s, int &$detectedFormat=null): Image .[method]
------------------------------------------------------------------------
Beolvas egy képet egy karakterláncból, és visszaadja a típusát a `$detectedFormat` címen. A támogatott típusok: `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP`.


static rgb(int $red, int $green, int $blue, int $transparency=0): array .[method]
---------------------------------------------------------------------------------
Létrehoz egy színt, amely más módszerekben, például a `ellipse()`, `fill()`, stb. használható.


static typeToExtension(int $type): string .[method]
---------------------------------------------------
Visszaadja az adott `Image::XXX` konstans fájlkiterjesztését.


static typeToMimeType(int $type): string .[method]
--------------------------------------------------
Visszaadja a megadott `Image::XXX` konstans mime típusát.


static extensionToType(string $extension): int .[method]
--------------------------------------------------------
Visszaadja a kép típusát a `Image::XXX` konstansként a fájlkiterjesztésnek megfelelően.


static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int .[method]
--------------------------------------------------------------------------------------------
Visszaadja a képfájl típusát a `Image::XXX` konstansként, valamint a `$width` és `$height` paraméterekben a méreteit is.


static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int .[method]
-------------------------------------------------------------------------------------------
Visszaadja a kép típusát a stringből a `Image::XXX` konstansként, és a `$width` és `$height` paraméterekben a méreteit is.


affine(array $affine, array $clip=null): Image .[method]
--------------------------------------------------------
Visszaad egy képet, amely az affin transzformált src képet tartalmazza, egy opcionális vágási terület használatával. ([tovább |https://www.php.net/manual/en/function.imageaffine]).


affineMatrixConcat(array $m1, array $m2): array .[method]
---------------------------------------------------------
Két affin transzformációs mátrix összekapcsolását adja vissza, ami akkor hasznos, ha több transzformációt kell alkalmazni ugyanarra a képre egy menetben. ([tovább |https://www.php.net/manual/en/function.imageaffinematrixconcat])


affineMatrixGet(int $type, mixed $options=null): array .[method]
----------------------------------------------------------------
Visszaad egy affin transzformációs mátrixot. ([tovább |https://www.php.net/manual/en/function.imageaffinematrixget])


alphaBlending(bool $on): void .[method]
---------------------------------------
Két különböző rajzolási módot tesz lehetővé a truecolor képeken. Keverési módban az összes rajzolási funkcióhoz, például a `setPixel()` oldalhoz megadott szín alfa-csatorna komponense határozza meg, hogy az alapszínből mennyi látszódjon át. Ennek eredményeképpen a program automatikusan összekeveri az adott ponton meglévő színt a rajz színével, és az eredményt a képen tárolja. Az eredményül kapott képpont átlátszatlan. Nem keverési módban a rajz színe szó szerint az alfacsatorna információival együtt másolódik, és a célpixel helyébe lép. A palettás képekre való rajzoláskor a blending mód nem érhető el. ([tovább |https://www.php.net/manual/en/function.imagealphablending])


antialias(bool $on): void .[method]
-----------------------------------
Aktiválja a gyors rajzolás antializált módszereit a vonalak és a vezetékes sokszögek esetében. Nem támogatja az alfa komponenseket. Közvetlen keverési művelettel működik. Csak színhű képekkel működik.

Az antialiased primitívek átlátszó háttérszínnel történő használata nem várt eredményekkel járhat. A keverési módszer a háttérszínt ugyanúgy használja, mint bármely más színt. Az alfa komponens támogatás hiánya nem teszi lehetővé az alfa alapú antialiasing módszert. ([tovább |https://www.php.net/manual/en/function.imageantialias])


arc(int $x, int $y, int $w, int $h, int $start, int $end, int $color): void .[method]
-------------------------------------------------------------------------------------
A megadott koordináták középpontjában lévő körív rajzolása. ([tovább |https://www.php.net/manual/en/function.imagearc])


char(int $font, int $x, int $y, string $char, int $color): void .[method]
-------------------------------------------------------------------------
A `$char` első karakterét a képen a `$x`,`$y` (a bal felső rész 0, 0) színnel rajzolja meg a `$color` színnel a első karakterét. ([tovább |https://www.php.net/manual/en/function.imagechar])


charUp(int $font, int $x, int $y, string $char, int $color): void .[method]
---------------------------------------------------------------------------
A `$char` karaktert függőlegesen rajzolja a megadott koordinátán a megadott képen. ([tovább |https://www.php.net/manual/en/function.imagecharup])


colorAllocate(int $red, int $green, int $blue): int .[method]
-------------------------------------------------------------
Visszaad egy színazonosítót, amely a megadott RGB-komponensekből álló színt reprezentálja. Minden egyes, a képen használni kívánt szín létrehozásához meg kell hívni. ([tovább |https://www.php.net/manual/en/function.imagecolorallocate])


colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
------------------------------------------------------------------------------
Ugyanúgy viselkedik, mint a `colorAllocate()`, kiegészítve a `$alpha` átlátszósági paraméterrel. ([tovább |https://www.php.net/manual/en/function.imagecolorallocatealpha])


colorAt(int $x, int $y): int .[method]
--------------------------------------
Visszaadja a kép megadott helyén lévő pixel színének indexét. Ha a kép valódi színű kép, ez a függvény egész számként adja vissza az adott pixel RGB-értékét. A biteltolás és a maszkolás segítségével hozzáférhet a különböző piros, zöld és kék komponens értékekhez: ([tovább |https://www.php.net/manual/en/function.imagecolorat])


colorClosest(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
Visszaadja a kép palettáján annak a színnek az indexét, amelyik a legközelebb áll a megadott RGB-értékhez. A kívánt szín és a paletta egyes színei közötti "távolság" úgy kerül kiszámításra, mintha az RGB-értékek a háromdimenziós tér pontjai lennének. ([tovább |https://www.php.net/manual/en/function.imagecolorclosest])


colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
Visszaadja a kép palettáján annak a színnek az indexét, amelyik a legközelebb áll a megadott RGB-értékhez és a `$alpha` szinthez. ([tovább |https://www.php.net/manual/en/function.imagecolorclosestalpha])


colorClosestHWB(int $red, int $green, int $blue): int .[method]
---------------------------------------------------------------
Annak a színnek az indexét kapja meg, amelynek árnyalata, fehérsége és feketesége a legközelebb áll az adott színhez. ([tovább |https://www.php.net/manual/en/function.imagecolorclosesthwb])


colorDeallocate(int $color): void .[method]
-------------------------------------------
Feloldja a korábban a `colorAllocate()` vagy a `colorAllocateAlpha()` segítségével kiosztott színt. ([tovább |https://www.php.net/manual/en/function.imagecolordeallocate])


colorExact(int $red, int $green, int $blue): int .[method]
----------------------------------------------------------
Visszaadja a megadott szín indexét a kép palettáján. ([tovább |https://www.php.net/manual/en/function.imagecolorexact])


colorExactAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
---------------------------------------------------------------------------
Visszaadja a megadott szín+alfa indexét a kép palettáján. ([tovább |https://www.php.net/manual/en/function.imagecolorexactalpha])


colorMatch(Image $image2): void .[method]
-----------------------------------------
A kép palettás változatának színei jobban megfelelnek a valódi színváltozatnak. ([tovább |https://www.php.net/manual/en/function.imagecolormatch])


colorResolve(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
Visszaadja a kért szín szín indexét, vagy a pontos színt, vagy a legközelebbi lehetséges alternatívát. ([tovább |https://www.php.net/manual/en/function.imagecolorresolve])


colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
Visszaadja a kért szín szín indexét, vagy a pontos színt, vagy a legközelebbi lehetséges alternatívát. ([tovább |https://www.php.net/manual/en/function.imagecolorresolvealpha])


colorSet(int $index, int $red, int $green, int $blue): void .[method]
---------------------------------------------------------------------
Ez a palettán a megadott indexet a megadott színre állítja. ([tovább |https://www.php.net/manual/en/function.imagecolorset])


colorsForIndex(int $index): array .[method]
-------------------------------------------
Megkapja a színt egy megadott indexhez. ([tovább |https://www.php.net/manual/en/function.imagecolorsforindex])


colorsTotal(): int .[method]
----------------------------
Visszaadja a színek számát egy képpalettán ([more |https://www.php.net/manual/en/function.imagecolorstotal]).


colorTransparent(int $color=null): int .[method]
------------------------------------------------
A kép átlátszó színének lekérdezése vagy beállítása. ([tovább |https://www.php.net/manual/en/function.imagecolortransparent])


convolution(array $matrix, float $div, float $offset): void .[method]
---------------------------------------------------------------------
Egy konvolúciós mátrixot alkalmaz a képre a megadott együttható és eltolás segítségével. ([tovább |https://www.php.net/manual/en/function.imageconvolution])

.[note]
Igényli a *Bundled GD kiterjesztést*, így nem biztos, hogy mindenhol működik.


copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void .[method]
--------------------------------------------------------------------------------------------------
A `$src` egy részét a `$srcX`, `$srcY` koordinátáknál kezdődő képre másolja a `$srcW` szélességű és `$srcH` magasságú képre. A meghatározott rész a koordinátákra, a `$dstX` és a `$dstY` koordinátákra lesz másolva. ([tovább |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]
---------------------------------------------------------------------------------------------------------------------
A `$src` egy részét a `$srcX`, `$srcY` koordinátáknál kezdődő képre másolja a `$srcW` szélességű és `$srcH` magasságú képre. A meghatározott rész a koordinátákra, a `$dstX` és a `$dstY` koordinátákra lesz másolva. ([tovább |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]
-------------------------------------------------------------------------------------------------------------------------
A `$src` egy részét a `$srcX`, `$srcY` koordinátáknál kezdődő képre másolja a `$srcW` szélességű és `$srcH` magasságú képre. A meghatározott rész a koordinátákra, a `$dstX` és a `$dstY` koordinátákra lesz másolva.

Ez a funkció megegyezik a `copyMerge()` funkcióval, azzal a különbséggel, hogy az összevonás során megőrzi a forrás színárnyalatát azáltal, hogy a célpixeleket a másolási művelet előtt szürkeárnyalatúvá alakítja. ([tovább |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]
---------------------------------------------------------------------------------------------------------------------------------
Egy kép téglalap alakú részét átmásolja egy másik képre, simán interpolálva a pixelértékeket, így különösen a kép méretének csökkentése esetén továbbra is nagyfokú tisztaságot biztosít.

Más szóval, a `copyResampled()` a `$src` egy téglalap alakú területet vesz a `$srcW` szélességű és a `$srcH` magasságú -ből a (`$srcX`,`$srcY`) pozícióban, és elhelyezi a kép egy téglalap alakú, `$dstW` szélességű és a `$dstH` magasságú`$dstX`,`$dstY`) pozícióban lévő téglalap alakú területébe.

Ha a forrás- és a célkoordináták, valamint a szélesség és a magasság eltér, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ez a funkció használható ugyanazon a képen belüli régiók másolására, de ha a régiók átfedik egymást, az eredmény kiszámíthatatlan lesz. ([tovább |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]
-------------------------------------------------------------------------------------------------------------------------------
Egy kép téglalap alakú részét másolja át egy másik képre. Más szóval, a `copyResized()` a `$src` egy téglalap alakú területet vesz a `$srcW` szélességű és a `$srcH` magasságú -ből a (`$srcX`,`$srcY`) pozícióban, és elhelyezi a kép egy téglalap alakú, `$dstW` szélességű és a `$dstH` magasságú`$dstX`,`$dstY`) pozícióban lévő téglalap alakú területébe.

Ha a forrás- és a célkoordináták, valamint a szélesség és a magasság eltér, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ez a funkció használható ugyanazon a képen belüli régiók másolására, de ha a régiók átfedik egymást, az eredmény kiszámíthatatlan lesz. ([tovább |https://www.php.net/manual/en/function.imagecopyresized])


crop(int|string $left, int|string $top, int|string $width, int|string $height): Image .[method]
-----------------------------------------------------------------------------------------------
A képet a megadott téglalap alakú területre vágja. A méretek átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. `'50%'`).


cropAuto(int $mode=-1, float $threshold=.5, int $color=-1): Image .[method]
---------------------------------------------------------------------------
Automatikusan levágja a képet a megadott `$mode` címnek megfelelően. ([tovább |https://www.php.net/manual/en/function.imagecropauto])


ellipse(int $cx, int $cy, int $w, int $h, int $color): void .[method]
---------------------------------------------------------------------
Egy ellipszist rajzol a megadott koordináták középpontjába. ([tovább |https://www.php.net/manual/en/function.imageellipse])


fill(int $x, int $y, int $color): void .[method]
------------------------------------------------
A megadott koordinátánál (balra fent 0, 0) kezdődő áradásos kitöltést hajt végre a megadott `$color` címen a képen. ([tovább |https://www.php.net/manual/en/function.imagefill])


filledArc(int $cx, int $cy, int $w, int $h, int $s, int $e, int $color, int $style): void .[method]
---------------------------------------------------------------------------------------------------
Egy részleges ívet rajzol, amelynek középpontja a kép megadott koordinátája. ([tovább |https://www.php.net/manual/en/function.imagefilledarc])


filledEllipse(int $cx, int $cy, int $w, int $h, int $color): void .[method]
---------------------------------------------------------------------------
Egy ellipszist rajzol, amelynek középpontja a kép megadott koordinátája. ([tovább |https://www.php.net/manual/en/function.imagefilledellipse])


filledPolygon(array $points, int $numPoints, int $color): void .[method]
------------------------------------------------------------------------
Egy kitöltött sokszöget hoz létre a $image-ben. ([tovább |https://www.php.net/manual/en/function.imagefilledpolygon])


filledRectangle(int $x1, int $y1, int $x2, int $y2, int $color): void .[method]
-------------------------------------------------------------------------------
Egy téglalapot hoz létre a képen a `$color` címmel, amely az 1. pontban kezdődik és a 2. pontban végződik. 0, 0 a kép bal felső sarka. ([tovább |https://www.php.net/manual/en/function.imagefilledrectangle])


fillToBorder(int $x, int $y, int $border, int $color): void .[method]
---------------------------------------------------------------------
Olyan áradásos kitöltést végez, amelynek határszínét a `$border` határozza meg. A kitöltés kezdőpontja a `$x`, `$y` (balra fent 0, 0), és a régiót a `$color` színnel töltjük ki. ([tovább |https://www.php.net/manual/en/function.imagefilltoborder])


filter(int $filtertype, int ...$args): void .[method]
-----------------------------------------------------
A megadott `$filtertype` szűrőt alkalmazza a képre. ([tovább |https://www.php.net/manual/en/function.imagefilter])


flip(int $mode): void .[method]
-------------------------------
Megfordítja a képet a megadott `$mode` segítségével. ([tovább |https://www.php.net/manual/en/function.imageflip])


ftText(int $size, int $angle, int $x, int $y, int $col, string $fontFile, string $text, array $extrainfo=null): array .[method]
-------------------------------------------------------------------------------------------------------------------------------
Írjon szöveget a képre a FreeType 2 betűtípusok segítségével. ([tovább |https://www.php.net/manual/en/function.imagefttext])


gammaCorrect(float $inputgamma, float $outputgamma): void .[method]
-------------------------------------------------------------------
Gammakorrekciót alkalmaz a képre egy bemeneti és egy kimeneti gamma megadásával. ([tovább |https://www.php.net/manual/en/function.imagegammacorrect])


getClip(): array .[method]
--------------------------
Az aktuális vágási téglalap, azaz az a terület, amelyen túl nem rajzolunk pixeleket. ([tovább |https://www.php.net/manual/en/function.imagegetclip])


getHeight(): int .[method]
--------------------------
Visszaadja a kép magasságát.


getImageResource(): resource|GdImage .[method]
----------------------------------------------
Visszaadja az eredeti erőforrást.


getWidth(): int .[method]
-------------------------
Visszaadja a kép szélességét.


interlace(int $interlace=null): int .[method]
---------------------------------------------
Be- vagy kikapcsolja az interlace bitet. Ha az interlace bit be van állítva, és a képet JPEG-ként használják, a kép progresszív JPEG-ként jön létre. ([tovább |https://www.php.net/manual/en/function.imageinterlace])


isTrueColor(): bool .[method]
-----------------------------
Megállapítja, hogy a kép színhű-e. ([tovább |https://www.php.net/manual/en/function.imageistruecolor])


layerEffect(int $effect): void .[method]
----------------------------------------
Állítsa be az alpha blending flaget a réteghatások használatához. ([tovább |https://www.php.net/manual/en/function.imagelayereffect])


line(int $x1, int $y1, int $x2, int $y2, int $color): void .[method]
--------------------------------------------------------------------
Vonalat húz a két megadott pont közé. ([tovább |https://www.php.net/manual/en/function.imageline])


openPolygon(array $points, int $numPoints, int $color): void .[method]
----------------------------------------------------------------------
Egy nyitott sokszöget rajzol a képre. A `polygon()` címmel ellentétben az utolsó és az első pont között nem húzódik vonal. ([tovább |https://www.php.net/manual/en/function.imageopenpolygon])


paletteCopy(Image $source): void .[method]
------------------------------------------
A palettát a `$source` oldalról átmásolja a képre. ([tovább |https://www.php.net/manual/en/function.imagepalettecopy])


paletteToTrueColor(): void .[method]
------------------------------------
Az olyan funkciókkal létrehozott paletta alapú képet, mint a `create()`, valódi színű képpé alakítja, mint a `createtruecolor()`. ([tovább |https://www.php.net/manual/en/function.imagepalettetotruecolor])


place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image .[method]
---------------------------------------------------------------------------------------------
Másolja a `$image` címet a képre a `$left` és a `$top` koordinátáknál. A koordináták átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. `'50%'`).


polygon(array $points, int $numPoints, int $color): void .[method]
------------------------------------------------------------------
Egy sokszöget hoz létre a képen. ([tovább |https://www.php.net/manual/en/function.imagepolygon])


rectangle(int $x1, int $y1, int $x2, int $y2, int $col): void .[method]
-----------------------------------------------------------------------
A megadott koordinátáknál kezdődő téglalapot hoz létre. ([tovább |https://www.php.net/manual/en/function.imagerectangle])


resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image .[method]
-------------------------------------------------------------------------------------------
Méretezi a képet, [további információk |#Image Resize]. A méretek átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. `'50%'`).


resolution(int $resX=null, int $resY=null): mixed .[method]
-----------------------------------------------------------
Lehetővé teszi a kép felbontásának beállítását és lekérdezését DPI-ben (dots per inch). Ha az opcionális paraméterek egyike sincs megadva, az aktuális felbontás indexelt tömbként kerül visszaadásra. Ha csak a `$resX` értéket adja meg, a vízszintes és függőleges felbontás erre az értékre kerül beállításra. Ha mindkét opcionális paramétert megadjuk, a vízszintes és függőleges felbontás ezekre az értékekre kerül beállításra.

A felbontást csak akkor használjuk meta információként, amikor a képeket az ilyen információt támogató formátumokból olvassuk be és írjuk ki (jelenleg PNG és JPEG). Ez nem befolyásolja a rajzolási műveleteket. Az új képek alapértelmezett felbontása 96 DPI. ([tovább |https://www.php.net/manual/en/function.imageresolution])


rotate(float $angle, int $backgroundColor): Image .[method]
-----------------------------------------------------------
Elforgatja a képet a megadott `$angle` értékkel fokban. Az elforgatás középpontja a kép középpontja, és az elforgatott kép mérete eltérhet az eredeti képtől. ([tovább |https://www.php.net/manual/en/function.imagerotate])

.[note]
Igényli a *Bundled GD kiterjesztést*, így nem biztos, hogy mindenhol működik.


save(string $file, int $quality=null, int $type=null): void .[method]
---------------------------------------------------------------------
Kép mentése egy fájlba.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében pedig 0..9 tartományban van. Ha a típus nem egyértelmű a fájlkiterjesztésből, akkor a `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP` konstansok valamelyikével adhatja meg.


saveAlpha(bool $saveflag): void .[method]
-----------------------------------------
Beállítja azt a jelzőt, amely meghatározza, hogy a PNG-képek mentésekor megmaradjon-e a teljes alfa-csatorna információ (szemben az egyszínű átlátszósággal).

Az alfacsatorna megtartásához az alfacsatornát ki kell kapcsolni (`alphaBlending(false)`). ([tovább |https://www.php.net/manual/en/function.imagesavealpha])


scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image .[method]
--------------------------------------------------------------------------------------
A megadott interpolációs algoritmus segítségével méretezi a képet. ([tovább |https://www.php.net/manual/en/function.imagescale])


send(int $type=Image::JPEG, int $quality=null): void .[method]
--------------------------------------------------------------
Kimeneti egy képet a böngészőbe.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében 0..9 tartományban van. A típus a `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP` konstansok egyike.


setBrush(Image $brush): void .[method]
--------------------------------------
Beállítja az ecsetképet, amelyet az összes vonalrajzoló funkció (például a `line()` és a `polygon()`) használ, amikor az IMG_COLOR_BRUSHED vagy IMG_COLOR_STYLEDBRUSHED speciális színekkel rajzol. ([tovább |https://www.php.net/manual/en/function.imagesetbrush])


setClip(int $x1, int $y1, int $x2, int $y2): void .[method]
-----------------------------------------------------------
Beállítja az aktuális vágási téglalapot, azaz azt a területet, amelyen túl nem rajzolunk pixeleket. ([tovább |https://www.php.net/manual/en/function.imagesetclip])


setInterpolation(int $method=IMG_BILINEAR_FIXED): void .[method]
----------------------------------------------------------------
Beállítja az interpolációs módszert, amely hatással van a `rotate()` és a `affine()` módszerekre. ([tovább |https://www.php.net/manual/en/function.imagesetinterpolation])


setPixel(int $x, int $y, int $color): void .[method]
----------------------------------------------------
Egy pixelt rajzol a megadott koordinátára. ([tovább |https://www.php.net/manual/en/function.imagesetpixel])


setStyle(array $style): void .[method]
--------------------------------------
Beállítja az IMG_COLOR_STYLED speciális színnel vagy IMG_COLOR_STYLEDBRUSHED színű képek vonalainak rajzolásakor az összes vonalrajzoló funkció (például `line()` és `polygon()`) által használt stílust. ([tovább |https://www.php.net/manual/en/function.imagesetstyle])


setThickness(int $thickness): void .[method]
--------------------------------------------
A téglalapok, sokszögek, ívek stb. rajzolásakor rajzolt vonalak vastagságát a `$thickness` pixelre állítja be. ([tovább |https://www.php.net/manual/en/function.imagesetthickness])


setTile(Image $tile): void .[method]
------------------------------------
Beállítja a csempeképet, amelyet az összes régiókitöltő funkció (például a `fill()` és a `filledPolygon()`) az IMG_COLOR_TILED speciális színnel való kitöltéskor használ.

A csempe egy olyan kép, amelyet egy terület ismétlődő mintával való kitöltésére használnak. Bármilyen kép használható csempeként, és a csempekép átlátszó színindexének a `colorTransparent()` segítségével történő beállításával olyan csempe hozható létre, amely lehetővé teszi az alapterület bizonyos részeinek átvilágítását. ([tovább |https://www.php.net/manual/en/function.imagesettile])


sharpen(): Image .[method]
--------------------------
Egy kicsit élesíti a képet.

.[note]
Igényli a *Bundled GD kiterjesztést*, így nem biztos, hogy mindenhol működik.


string(int $font, int $x, int $y, string $str, int $col): void .[method]
------------------------------------------------------------------------
Egy karakterláncot rajzol a megadott koordinátákhoz. ([tovább |https://www.php.net/manual/en/function.imagestring])


stringUp(int $font, int $x, int $y, string $s, int $col): void .[method]
------------------------------------------------------------------------
Egy sztringet rajzol függőlegesen a megadott koordinátákhoz. ([tovább |https://www.php.net/manual/en/function.imagestringup])


toString(int $type=Image::JPEG, int $quality=null): string .[method]
--------------------------------------------------------------------
Kimeneti képet ad ki stringként.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében 0..9 tartományban van. A típus a `Image::JPEG`, `Image::PNG`, `Image::GIF`, `Image::WEBP`, `Image::AVIF` és `Image::BMP` konstansok egyike.


trueColorToPalette(bool $dither, int $ncolors): void .[method]
--------------------------------------------------------------
Egy valódi színű képet palettaképpé alakít át. ([tovább |https://www.php.net/manual/en/function.imagetruecolortopalette])


ttfText(int $size, int $angle, int $x, int $y, int $color, string $fontfile, string $text): array .[method]
-----------------------------------------------------------------------------------------------------------
A megadott szöveget TrueType betűtípusok használatával írja a képbe. ([tovább |https://www.php.net/manual/en/function.imagettftext])

Képfunkciók

Nette\Utils\Image osztály leegyszerűsíti a képmanipulációt, például a méretváltoztatást, a képkivágást, az élesítést, a rajzolást vagy több kép összevonását.

A PHP széleskörű függvénykészlettel rendelkezik a képek manipulálásához. De az API nem túl szép. Nem lenne egy Neat Framework, ha egy szexi API-val állna elő.

Telepítés:

composer require nette/utils

A következő példák feltételezik, hogy a következő osztály alias van definiálva:

use Nette\Utils\Image;

Kép létrehozása

Létrehozunk egy új színes képet, például 100×200-as méretben:

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

Opcionálisan megadhat egy háttérszínt (alapértelmezett a fekete):

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

Vagy betöltjük a képet egy fájlból:

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

A támogatott formátumok a JPEG, PNG, GIF, WebP, AVIF és BMP, de a PHP verziójának támogatnia kell ezeket (ellenőrizze a phpinfo(), GD szakaszban). Az animációk nem támogatottak.

Fel kell ismernie a képformátumot betöltéskor? A módszer a formátumot adja vissza a második paraméterben:

$image = Image::fromFile('nette.jpg', $type);
// $type az Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF vagy Image::BMP.

Csak a kép betöltése nélküli felismerést végzi a Image::detectTypeFromFile().

A kép mentése

A kép elmenthető egy fájlba:

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

A tömörítési minőséget a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében pedig 0..9 tartományban adhatjuk meg:

$image->save('resampled.jpg', 80); // JPEG, minőség 80%

Ha a formátum nem egyértelmű a fájlkiterjesztésből, akkor a Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP konstansok valamelyikével adható meg:

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

A képet lemez helyett egy változóba is ki lehet írni:

$data = $image->toString(Image::JPEG, 80); // JPEG, minőség 80%.

vagy közvetlenül a böngészőnek a megfelelő HTTP fejléccel Content-Type:

// fejlécet küld Content-Type: image/png
$image->send(Image::PNG);

Kép átméretezése

Gyakori művelet a kép átméretezése. Az aktuális méreteket a getWidth() és a getHeight() metódusok adják vissza.

Az átméretezéshez a resize() módszer használható. Ez egy példa az arányos méretváltoztatásra úgy, hogy az nem haladja meg az 500×300 pixelt (vagy a szélesség lesz pontosan 500px, vagy a magasság lesz pontosan 300px, az egyik dimenzió a képarány megtartása érdekében kerül kiszámításra):

$image->resize(500, 300);

Lehetőség van arra, hogy csak egy dimenziót állítson be, és a második dimenzió kiszámításra kerül:

$image->resize(500, null); // szélesség 500px, magasság auto

$image->resize(null, 300); // szélesség auto, magasság 300px

Bármelyik dimenzió megadható százalékban:

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

A resize viselkedését a következő jelzőkkel lehet befolyásolni. A Image::Stretch kivételével mindegyik megőrzi a képarányt.

Zászló Leírás
Image::OrSmaller (alapértelmezett) a kapott méretek kisebbek vagy egyenlőek lesznek a megadottakkal.
Image::OrBigger kitölti a célterületet, és esetleg egy irányba kiterjeszti azt.
Image::Cover kitölti az egész területet, és kivágja a túlnyúló részt.
Image::ShrinkOnly csak lefelé skálázódik (nem bővíti ki a kis képet)
Image::Stretch nem tartja meg a képarányt.

A zászlók a függvény harmadik argumentumaként kerülnek átadásra:

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

A zászlók kombinálhatók:

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

A képek függőlegesen vagy vízszintesen megfordíthatók az egyik dimenzió (vagy mindkettő) negatív számként történő megadásával:

$flipped = $image->resize(null, '-100%'); // Függőlegesen átfordítva

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

$flipped = $image->resize(-125, 500); // átméretezés és átfordítás vízszintesen

A kép kicsinyítése után élesítéssel javíthatunk rajta:

$image->sharpen();

Vágás

A crop() módszer a termesztésre szolgál:

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

A resize() oldalhoz hasonlóan minden érték százalékban is megadható. A $left és a $top százalékos értékeit a fennmaradó helyből számítják ki, hasonlóan a background-position CSS-tulajdonsághoz:

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

A képet automatikusan is lehet vágni, pl. fekete élek vágása:

$image->cropAuto(IMG_CROP_BLACK);

A cropAuto() metódus a imagecropauto() függvény objektumkapszulázása, további információkért lásd a dokumentációját.

Rajzolás és szerkesztés

Rajzolhatsz, írhatsz, használhatod az összes PHP függvényt a képekkel való munkához, mint például az imagefilledellipse(), de objektum stílusban:

$image->filledEllipse($cx, $cy, $width, $height, Image::rgb(255, 0, 0, 63));

Lásd a módszerek áttekintését.

Több kép egyesítése

Könnyedén elhelyezhet egy másik képet a képbe:

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

// a koordináták százalékban is megadhatók
$blank->place($logo, '80%', '80%'); // közel a jobb alsó sarokhoz

Beillesztéskor az alfa-csatornát tiszteletben tartjuk, emellett befolyásolhatjuk a beillesztett kép átlátszóságát (ún. vízjelet hozunk létre):

$blank->place($image, '80%', '80%', 25); // az átlátszóság 25 %-os

Egy ilyen API-t tényleg öröm használni, nem igaz?

A módszerek áttekintése

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

Új, valós színű képet hoz létre a megadott méretekkel. Az alapértelmezett szín a fekete.

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

Beolvas egy képet egy fájlból, és visszaadja a típusát a $detectedFormat címen. A támogatott típusok: Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP.

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

Beolvas egy képet egy karakterláncból, és visszaadja a típusát a $detectedFormat címen. A támogatott típusok: Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP.

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

Létrehoz egy színt, amely más módszerekben, például a ellipse(), fill(), stb. használható.

static typeToExtension(int $type)string

Visszaadja az adott Image::XXX konstans fájlkiterjesztését.

static typeToMimeType(int $type)string

Visszaadja a megadott Image::XXX konstans mime típusát.

static extensionToType(string $extension)int

Visszaadja a kép típusát a Image::XXX konstansként a fájlkiterjesztésnek megfelelően.

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

Visszaadja a képfájl típusát a Image::XXX konstansként, valamint a $width és $height paraméterekben a méreteit is.

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

Visszaadja a kép típusát a stringből a Image::XXX konstansként, és a $width és $height paraméterekben a méreteit is.

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

Visszaad egy képet, amely az affin transzformált src képet tartalmazza, egy opcionális vágási terület használatával. (tovább).

affineMatrixConcat(array $m1, array $m2)array

Két affin transzformációs mátrix összekapcsolását adja vissza, ami akkor hasznos, ha több transzformációt kell alkalmazni ugyanarra a képre egy menetben. (tovább)

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

Visszaad egy affin transzformációs mátrixot. (tovább)

alphaBlending(bool $on): void

Két különböző rajzolási módot tesz lehetővé a truecolor képeken. Keverési módban az összes rajzolási funkcióhoz, például a setPixel() oldalhoz megadott szín alfa-csatorna komponense határozza meg, hogy az alapszínből mennyi látszódjon át. Ennek eredményeképpen a program automatikusan összekeveri az adott ponton meglévő színt a rajz színével, és az eredményt a képen tárolja. Az eredményül kapott képpont átlátszatlan. Nem keverési módban a rajz színe szó szerint az alfacsatorna információival együtt másolódik, és a célpixel helyébe lép. A palettás képekre való rajzoláskor a blending mód nem érhető el. (tovább)

antialias(bool $on): void

Aktiválja a gyors rajzolás antializált módszereit a vonalak és a vezetékes sokszögek esetében. Nem támogatja az alfa komponenseket. Közvetlen keverési művelettel működik. Csak színhű képekkel működik.

Az antialiased primitívek átlátszó háttérszínnel történő használata nem várt eredményekkel járhat. A keverési módszer a háttérszínt ugyanúgy használja, mint bármely más színt. Az alfa komponens támogatás hiánya nem teszi lehetővé az alfa alapú antialiasing módszert. (tovább)

arc(int $x, int $y, int $w, int $h, int $start, int $end, int $color)void

A megadott koordináták középpontjában lévő körív rajzolása. (tovább)

char(int $font, int $x, int $y, string $char, int $color)void

A $char első karakterét a képen a $x,$y (a bal felső rész 0, 0) színnel rajzolja meg a $color színnel a első karakterét. (tovább)

charUp(int $font, int $x, int $y, string $char, int $color)void

A $char karaktert függőlegesen rajzolja a megadott koordinátán a megadott képen. (tovább)

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

Visszaad egy színazonosítót, amely a megadott RGB-komponensekből álló színt reprezentálja. Minden egyes, a képen használni kívánt szín létrehozásához meg kell hívni. (tovább)

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

Ugyanúgy viselkedik, mint a colorAllocate(), kiegészítve a $alpha átlátszósági paraméterrel. (tovább)

colorAt(int $x, int $y)int

Visszaadja a kép megadott helyén lévő pixel színének indexét. Ha a kép valódi színű kép, ez a függvény egész számként adja vissza az adott pixel RGB-értékét. A biteltolás és a maszkolás segítségével hozzáférhet a különböző piros, zöld és kék komponens értékekhez: (tovább)

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

Visszaadja a kép palettáján annak a színnek az indexét, amelyik a legközelebb áll a megadott RGB-értékhez. A kívánt szín és a paletta egyes színei közötti „távolság“ úgy kerül kiszámításra, mintha az RGB-értékek a háromdimenziós tér pontjai lennének. (tovább)

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

Visszaadja a kép palettáján annak a színnek az indexét, amelyik a legközelebb áll a megadott RGB-értékhez és a $alpha szinthez. (tovább)

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

Annak a színnek az indexét kapja meg, amelynek árnyalata, fehérsége és feketesége a legközelebb áll az adott színhez. (tovább)

colorDeallocate(int $color)void

Feloldja a korábban a colorAllocate() vagy a colorAllocateAlpha() segítségével kiosztott színt. (tovább)

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

Visszaadja a megadott szín indexét a kép palettáján. (tovább)

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

Visszaadja a megadott szín+alfa indexét a kép palettáján. (tovább)

colorMatch(Image $image2)void

A kép palettás változatának színei jobban megfelelnek a valódi színváltozatnak. (tovább)

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

Visszaadja a kért szín szín indexét, vagy a pontos színt, vagy a legközelebbi lehetséges alternatívát. (tovább)

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

Visszaadja a kért szín szín indexét, vagy a pontos színt, vagy a legközelebbi lehetséges alternatívát. (tovább)

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

Ez a palettán a megadott indexet a megadott színre állítja. (tovább)

colorsForIndex(int $index)array

Megkapja a színt egy megadott indexhez. (tovább)

colorsTotal(): int

Visszaadja a színek számát egy képpalettán (more).

colorTransparent(int $color=null)int

A kép átlátszó színének lekérdezése vagy beállítása. (tovább)

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

Egy konvolúciós mátrixot alkalmaz a képre a megadott együttható és eltolás segítségével. (tovább)

Igényli a Bundled GD kiterjesztést, így nem biztos, hogy mindenhol működik.

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

A $src egy részét a $srcX, $srcY koordinátáknál kezdődő képre másolja a $srcW szélességű és $srcH magasságú képre. A meghatározott rész a koordinátákra, a $dstX és a $dstY koordinátákra lesz másolva. (tovább)

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

A $src egy részét a $srcX, $srcY koordinátáknál kezdődő képre másolja a $srcW szélességű és $srcH magasságú képre. A meghatározott rész a koordinátákra, a $dstX és a $dstY koordinátákra lesz másolva. (tovább)

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

A $src egy részét a $srcX, $srcY koordinátáknál kezdődő képre másolja a $srcW szélességű és $srcH magasságú képre. A meghatározott rész a koordinátákra, a $dstX és a $dstY koordinátákra lesz másolva.

Ez a funkció megegyezik a copyMerge() funkcióval, azzal a különbséggel, hogy az összevonás során megőrzi a forrás színárnyalatát azáltal, hogy a célpixeleket a másolási művelet előtt szürkeárnyalatúvá alakítja. (tovább)

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

Egy kép téglalap alakú részét átmásolja egy másik képre, simán interpolálva a pixelértékeket, így különösen a kép méretének csökkentése esetén továbbra is nagyfokú tisztaságot biztosít.

Más szóval, a copyResampled() a $src egy téglalap alakú területet vesz a $srcW szélességű és a $srcH magasságú -ből a ($srcX,$srcY) pozícióban, és elhelyezi a kép egy téglalap alakú, $dstW szélességű és a $dstH magasságú$dstX,$dstY) pozícióban lévő téglalap alakú területébe.

Ha a forrás- és a célkoordináták, valamint a szélesség és a magasság eltér, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ez a funkció használható ugyanazon a képen belüli régiók másolására, de ha a régiók átfedik egymást, az eredmény kiszámíthatatlan lesz. (tovább)

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

Egy kép téglalap alakú részét másolja át egy másik képre. Más szóval, a copyResized() a $src egy téglalap alakú területet vesz a $srcW szélességű és a $srcH magasságú -ből a ($srcX,$srcY) pozícióban, és elhelyezi a kép egy téglalap alakú, $dstW szélességű és a $dstH magasságú$dstX,$dstY) pozícióban lévő téglalap alakú területébe.

Ha a forrás- és a célkoordináták, valamint a szélesség és a magasság eltér, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ez a funkció használható ugyanazon a képen belüli régiók másolására, de ha a régiók átfedik egymást, az eredmény kiszámíthatatlan lesz. (tovább)

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

A képet a megadott téglalap alakú területre vágja. A méretek átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. '50%').

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

Automatikusan levágja a képet a megadott $mode címnek megfelelően. (tovább)

ellipse(int $cx, int $cy, int $w, int $h, int $color)void

Egy ellipszist rajzol a megadott koordináták középpontjába. (tovább)

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

A megadott koordinátánál (balra fent 0, 0) kezdődő áradásos kitöltést hajt végre a megadott $color címen a képen. (tovább)

filledArc(int $cx, int $cy, int $w, int $h, int $s, int $e, int $color, int $style)void

Egy részleges ívet rajzol, amelynek középpontja a kép megadott koordinátája. (tovább)

filledEllipse(int $cx, int $cy, int $w, int $h, int $color)void

Egy ellipszist rajzol, amelynek középpontja a kép megadott koordinátája. (tovább)

filledPolygon(array $points, int $numPoints, int $color)void

Egy kitöltött sokszöget hoz létre a $image-ben. (tovább)

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

Egy téglalapot hoz létre a képen a $color címmel, amely az 1. pontban kezdődik és a 2. pontban végződik. 0, 0 a kép bal felső sarka. (tovább)

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

Olyan áradásos kitöltést végez, amelynek határszínét a $border határozza meg. A kitöltés kezdőpontja a $x, $y (balra fent 0, 0), és a régiót a $color színnel töltjük ki. (tovább)

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

A megadott $filtertype szűrőt alkalmazza a képre. (tovább)

flip(int $mode): void

Megfordítja a képet a megadott $mode segítségével. (tovább)

ftText(int $size, int $angle, int $x, int $y, int $col, string $fontFile, string $text, array $extrainfo=null)array

Írjon szöveget a képre a FreeType 2 betűtípusok segítségével. (tovább)

gammaCorrect(float $inputgamma, float $outputgamma)void

Gammakorrekciót alkalmaz a képre egy bemeneti és egy kimeneti gamma megadásával. (tovább)

getClip(): array

Az aktuális vágási téglalap, azaz az a terület, amelyen túl nem rajzolunk pixeleket. (tovább)

getHeight(): int

Visszaadja a kép magasságát.

getImageResource(): resource|GdImage

Visszaadja az eredeti erőforrást.

getWidth(): int

Visszaadja a kép szélességét.

interlace(int $interlace=null)int

Be- vagy kikapcsolja az interlace bitet. Ha az interlace bit be van állítva, és a képet JPEG-ként használják, a kép progresszív JPEG-ként jön létre. (tovább)

isTrueColor(): bool

Megállapítja, hogy a kép színhű-e. (tovább)

layerEffect(int $effect)void

Állítsa be az alpha blending flaget a réteghatások használatához. (tovább)

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

Vonalat húz a két megadott pont közé. (tovább)

openPolygon(array $points, int $numPoints, int $color)void

Egy nyitott sokszöget rajzol a képre. A polygon() címmel ellentétben az utolsó és az első pont között nem húzódik vonal. (tovább)

paletteCopy(Image $source)void

A palettát a $source oldalról átmásolja a képre. (tovább)

paletteToTrueColor(): void

Az olyan funkciókkal létrehozott paletta alapú képet, mint a create(), valódi színű képpé alakítja, mint a createtruecolor(). (tovább)

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

Másolja a $image címet a képre a $left és a $top koordinátáknál. A koordináták átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. '50%').

polygon(array $points, int $numPoints, int $color)void

Egy sokszöget hoz létre a képen. (tovább)

rectangle(int $x1, int $y1, int $x2, int $y2, int $col)void

A megadott koordinátáknál kezdődő téglalapot hoz létre. (tovább)

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

Méretezi a képet, további információk. A méretek átadhatók egész számokként pixelben vagy karakterláncokként százalékban (pl. '50%').

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

Lehetővé teszi a kép felbontásának beállítását és lekérdezését DPI-ben (dots per inch). Ha az opcionális paraméterek egyike sincs megadva, az aktuális felbontás indexelt tömbként kerül visszaadásra. Ha csak a $resX értéket adja meg, a vízszintes és függőleges felbontás erre az értékre kerül beállításra. Ha mindkét opcionális paramétert megadjuk, a vízszintes és függőleges felbontás ezekre az értékekre kerül beállításra.

A felbontást csak akkor használjuk meta információként, amikor a képeket az ilyen információt támogató formátumokból olvassuk be és írjuk ki (jelenleg PNG és JPEG). Ez nem befolyásolja a rajzolási műveleteket. Az új képek alapértelmezett felbontása 96 DPI. (tovább)

rotate(float $angle, int $backgroundColor)Image

Elforgatja a képet a megadott $angle értékkel fokban. Az elforgatás középpontja a kép középpontja, és az elforgatott kép mérete eltérhet az eredeti képtől. (tovább)

Igényli a Bundled GD kiterjesztést, így nem biztos, hogy mindenhol működik.

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

Kép mentése egy fájlba.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében pedig 0..9 tartományban van. Ha a típus nem egyértelmű a fájlkiterjesztésből, akkor a Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP konstansok valamelyikével adhatja meg.

saveAlpha(bool $saveflag)void

Beállítja azt a jelzőt, amely meghatározza, hogy a PNG-képek mentésekor megmaradjon-e a teljes alfa-csatorna információ (szemben az egyszínű átlátszósággal).

Az alfacsatorna megtartásához az alfacsatornát ki kell kapcsolni (alphaBlending(false)). (tovább)

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

A megadott interpolációs algoritmus segítségével méretezi a képet. (tovább)

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

Kimeneti egy képet a böngészőbe.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében 0..9 tartományban van. A típus a Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP konstansok egyike.

setBrush(Image $brush)void

Beállítja az ecsetképet, amelyet az összes vonalrajzoló funkció (például a line() és a polygon()) használ, amikor az IMG_COLOR_BRUSHED vagy IMG_COLOR_STYLEDBRUSHED speciális színekkel rajzol. (tovább)

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

Beállítja az aktuális vágási téglalapot, azaz azt a területet, amelyen túl nem rajzolunk pixeleket. (tovább)

setInterpolation(int $method=IMG_BILINEAR_FIXED)void

Beállítja az interpolációs módszert, amely hatással van a rotate() és a affine() módszerekre. (tovább)

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

Egy pixelt rajzol a megadott koordinátára. (tovább)

setStyle(array $style)void

Beállítja az IMG_COLOR_STYLED speciális színnel vagy IMG_COLOR_STYLEDBRUSHED színű képek vonalainak rajzolásakor az összes vonalrajzoló funkció (például line() és polygon()) által használt stílust. (tovább)

setThickness(int $thickness)void

A téglalapok, sokszögek, ívek stb. rajzolásakor rajzolt vonalak vastagságát a $thickness pixelre állítja be. (tovább)

setTile(Image $tile)void

Beállítja a csempeképet, amelyet az összes régiókitöltő funkció (például a fill() és a filledPolygon()) az IMG_COLOR_TILED speciális színnel való kitöltéskor használ.

A csempe egy olyan kép, amelyet egy terület ismétlődő mintával való kitöltésére használnak. Bármilyen kép használható csempeként, és a csempekép átlátszó színindexének a colorTransparent() segítségével történő beállításával olyan csempe hozható létre, amely lehetővé teszi az alapterület bizonyos részeinek átvilágítását. (tovább)

sharpen(): Image

Egy kicsit élesíti a képet.

Igényli a Bundled GD kiterjesztést, így nem biztos, hogy mindenhol működik.

string(int $font, int $x, int $y, string $str, int $col)void

Egy karakterláncot rajzol a megadott koordinátákhoz. (tovább)

stringUp(int $font, int $x, int $y, string $s, int $col)void

Egy sztringet rajzol függőlegesen a megadott koordinátákhoz. (tovább)

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

Kimeneti képet ad ki stringként.

A tömörítési minőség a JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetében 0..100, PNG (alapértelmezett 9) esetében 0..9 tartományban van. A típus a Image::JPEG, Image::PNG, Image::GIF, Image::WEBP, Image::AVIF és Image::BMP konstansok egyike.

trueColorToPalette(bool $dither, int $ncolors)void

Egy valódi színű képet palettaképpé alakít át. (tovább)

ttfText(int $size, int $angle, int $x, int $y, int $color, string $fontfile, string $text)array

A megadott szöveget TrueType betűtípusok használatával írja a képbe. (tovább)