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;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
```


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, ImageColor::rgb(125, 0, 0));
```

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

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


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 [konstanssal |#Formats] is megadható:

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

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

```php
$data = $image->toString(ImageType::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(ImageType::PNG);
```


Formátumok .[#toc-formats]
==========================

Támogatott formátumok: JPEG, PNG, GIF, WebP, AVIF és BMP. Ezeket azonban a PHP verziójának is támogatnia kell, amit az [isTypeSupported() |#isTypeSupported()] függvény segítségével ellenőrizhet. Az animációk nem támogatottak.

A formátumokat a `ImageType::JPEG`, `ImageType::PNG`, `ImageType::GIF`, `ImageType::WEBP`, `ImageType::AVIF` és `ImageType::BMP` konstansok jelölik.

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

Fel kell ismernie egy kép formátumát betöltéskor? A módszer ezt a második paraméterben adja vissza:

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

A tényleges felismerést a kép betöltése nélkül a `Image::detectTypeFromFile()` végzi.


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].


Színek .[#toc-colors]
=====================

A `ImageColor::rgb()` módszer lehetővé teszi a színek meghatározását a vörös, zöld és kék (RGB) értékek segítségével. Opcionálisan egy átlátszósági értéket is megadhat 0 (teljesen átlátszó) és 1 (teljesen átlátszatlan) között, akárcsak a CSS-ben.

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

A `ImageColor::hex()` módszerrel a CSS-hez hasonlóan hexadecimális formátumban adhat meg egy színt. Támogatja a `#rgb`, `#rrggbb`, `#rgba` és `#rrggbbaa` formátumokat:

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

A színeket más módszerekben is lehet használni, mint például a `ellipse()`, `fill()`, stb.


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

Rajzolhatsz, írhatsz, használhatod az összes PHP függvényt a képmanipulációhoz, lásd: [A módszerek áttekintése |#Overview of methods], de egy objektumorientált burkolatban:

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

Mivel a téglalapok rajzolására szolgáló PHP függvények a koordináták megadása miatt nem praktikusak, a `Image` osztály a [rectangleWH() |#rectangleWH()] és a [filledRectangleWH() |#filledRectangleWH()] függvények formájában helyettesíti őket.


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, ImageColor::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, ImageColor $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 |#Formats] a `$detectedFormat` címen.


static fromString(string $s, int &$detectedFormat=null): Image .[method]
------------------------------------------------------------------------
Beolvas egy képet egy karakterláncból, és visszaadja [a típusát |#Formats] a `$detectedFormat` címen.


static rgb(int $red, int $green, int $blue, int $transparency=0): array .[method][deprecated]
---------------------------------------------------------------------------------------------
Ezt a funkciót a `ImageColor` osztály váltotta fel, lásd a [színeket |#Colors].


static typeToExtension(int $type): string .[method]
---------------------------------------------------
Visszaadja az adott [típushoz |#Formats] tartozó fájlkiterjesztést.


static typeToMimeType(int $type): string .[method]
--------------------------------------------------
Visszaadja az adott [típus |#Formats] mime típusát.


static extensionToType(string $extension): int .[method]
--------------------------------------------------------
Visszaadja a kép [típusát |#Formats] 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 |#Formats] és 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 |#Formats] a stringből és a `$width` és `$height` paraméterekben a méreteit is.


static isTypeSupported(int $type): bool .[method]
-------------------------------------------------
Megállapítja, hogy az adott [képtípus |#Formats] támogatott-e.


static getSupportedTypes(): array .[method]{data-version:4.0.4}
---------------------------------------------------------------
Visszaadja a támogatott képtípusok tömbjét (konstansok `ImageType::XXX`).


static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array .[method]
------------------------------------------------------------------------------------------------------------------------
Kiszámítja a megadott betűtípusú és méretű szöveget körülvevő téglalap méreteit. Egy asszociatív tömböt ad vissza, amely a `left`, `top`, `width`, `height` kulcsokat tartalmazza. A bal oldali margó negatív lehet, ha a szöveg bal oldali túlnyúlással kezdődik.


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 $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $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])


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, ?ImageColor $color=null): 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 $centerX, int $centerY, int $width, int $height, ImageColor $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, ImageColor $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 $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $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 $centerX, int $centerY, int $width, int $height, ImageColor $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, ImageColor $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, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------
Egy téglalapot hoz létre a képen a `$color` címmel, amely a `$x1` és a `$y1` címen kezdődik és a `$x2` és a `$y2` címen végződik. 0, 0 pont a kép bal felső sarka. ([tovább |https://www.php.net/manual/en/function.imagefilledrectangle])


filledRectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------------------
Létrehoz egy téglalapot, amely a `$color` képen a `$left` és a `$top` pontból kiindulva `$width` szélességű és `$height` magasságú téglalapot hoz létre. A 0,0 pont a kép bal felső sarka.


fillToBorder(int $x, int $y, int $border, ImageColor $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(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
----------------------------------------------------------------------------------------------------------------------------------------
Írja a képen látható szöveget. ([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, ImageColor $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, ImageColor $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, ImageColor $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, ImageColor $color): 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])


rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------------
Egy téglalapot hoz létre a megadott koordinátákon.


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 0..9 tartományban van. Ha a típus nem egyértelmű a fájlkiterjesztésből, akkor a `ImageType` konstansok egyiké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=ImageType::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.


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, ImageColor $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.


toString(int $type=ImageType::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.


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(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
-----------------------------------------------------------------------------------------------------------------------------------------
A megadott szöveget í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;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;

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, ImageColor::rgb(125, 0, 0));

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

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

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 konstanssal is megadható:

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

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

$data = $image->toString(ImageType::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(ImageType::PNG);

Formátumok

Támogatott formátumok: JPEG, PNG, GIF, WebP, AVIF és BMP. Ezeket azonban a PHP verziójának is támogatnia kell, amit az isTypeSupported() függvény segítségével ellenőrizhet. Az animációk nem támogatottak.

A formátumokat a ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF és ImageType::BMP konstansok jelölik.

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

Fel kell ismernie egy kép formátumát betöltéskor? A módszer ezt a második paraméterben adja vissza:

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

A tényleges felismerést a kép betöltése nélkül a Image::detectTypeFromFile() végzi.

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.

Színek

A ImageColor::rgb() módszer lehetővé teszi a színek meghatározását a vörös, zöld és kék (RGB) értékek segítségével. Opcionálisan egy átlátszósági értéket is megadhat 0 (teljesen átlátszó) és 1 (teljesen átlátszatlan) között, akárcsak a CSS-ben.

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

A ImageColor::hex() módszerrel a CSS-hez hasonlóan hexadecimális formátumban adhat meg egy színt. Támogatja a #rgb, #rrggbb, #rgba és #rrggbbaa formátumokat:

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

A színeket más módszerekben is lehet használni, mint például a ellipse(), fill(), stb.

Rajzolás és szerkesztés

Rajzolhatsz, írhatsz, használhatod az összes PHP függvényt a képmanipulációhoz, lásd: A módszerek áttekintése, de egy objektumorientált burkolatban:

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

Mivel a téglalapok rajzolására szolgáló PHP függvények a koordináták megadása miatt nem praktikusak, a Image osztály a rectangleWH() és a filledRectangleWH() függvények formájában helyettesíti őket.

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, ImageColor::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, ImageColor $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.

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.

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

Ezt a funkciót a ImageColor osztály váltotta fel, lásd a színeket.

static typeToExtension(int $type)string

Visszaadja az adott típushoz tartozó fájlkiterjesztést.

static typeToMimeType(int $type)string

Visszaadja az adott típus mime típusát.

static extensionToType(string $extension)int

Visszaadja a kép típusát 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 és 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 és a $width és $height paraméterekben a méreteit is.

static isTypeSupported(int $type)bool

Megállapítja, hogy az adott képtípus támogatott-e.

static getSupportedTypes(): array

Visszaadja a támogatott képtípusok tömbjét (konstansok ImageType::XXX).

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

Kiszámítja a megadott betűtípusú és méretű szöveget körülvevő téglalap méreteit. Egy asszociatív tömböt ad vissza, amely a left, top, width, height kulcsokat tartalmazza. A bal oldali margó negatív lehet, ha a szöveg bal oldali túlnyúlással kezdődik.

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 $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color)void

A megadott koordináták középpontjában lévő körív rajzolása. (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, ?ImageColor $color=null)Image

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

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

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

fill(int $x, int $y, ImageColor $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 $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style)void

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

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

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

filledPolygon(array $points, ImageColor $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, ImageColor $color)void

Egy téglalapot hoz létre a képen a $color címmel, amely a $x1 és a $y1 címen kezdődik és a $x2 és a $y2 címen végződik. 0, 0 pont a kép bal felső sarka. (tovább)

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

Létrehoz egy téglalapot, amely a $color képen a $left és a $top pontból kiindulva $width szélességű és $height magasságú téglalapot hoz létre. A 0,0 pont a kép bal felső sarka.

fillToBorder(int $x, int $y, int $border, ImageColor $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(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Írja a képen látható szöveget. (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, ImageColor $color)void

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

openPolygon(array $points, ImageColor $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, ImageColor $color)void

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

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

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

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

Egy téglalapot hoz létre a megadott koordinátákon.

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 0..9 tartományban van. Ha a típus nem egyértelmű a fájlkiterjesztésből, akkor a ImageType konstansok egyiké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=ImageType::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.

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, ImageColor $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.

toString(int $type=ImageType::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.

trueColorToPalette(bool $dither, int $ncolors)void

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

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

A megadott szöveget írja a képbe. (tovább)