Képekkel való munka

Nette\Utils\Image osztály leegyszerűsíti a képekkel való manipulációt, mint például a méretváltoztatás, vágás, élesítés, rajzolás vagy több kép összefűzése.

A PHP kiterjedt funkciókészlettel rendelkezik a képek manipulálására. De az API-juk nem túl kényelmes. Nem lenne a Nette Framework, ha nem jönne elő egy szexi API-val.

Telepítés:

composer require nette/utils

Minden példa feltételezi a létrehozott aliast:

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

Kép létrehozása

Létrehozunk egy új true color képet, például 100×200 méretekkel:

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

Opcionálisan megadhatjuk a háttérszínt (az 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');

Kép mentése

A képet el lehet menteni egy fájlba:

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

Megadhatjuk a tömörítés minőségét 0..100 tartományban JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetén, és 0..9 tartományban PNG (alapértelmezett 9) esetén:

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

Ha a fájlkiterjesztésből nem egyértelmű a formátum, megadhatjuk konstanssal:

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

A képet lemez helyett egy változóba is írhatjuk:

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

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

// elküldi a Content-Type: image/png fejlécet
$image->send(ImageType::PNG);

Formátumok

A támogatott formátumok a JPEG, PNG, GIF, WebP, AVIF és BMP, azonban a PHP verziójának is támogatnia kell őket, amit a isTypeSupported() függvénnyel ellenőrizhetünk. Az animációk nem támogatottak.

A formátumot az ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF és ImageType::BMP konstansok képviselik.

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

Szüksége van a kép formátumának észlelésére betöltéskor? A metódus a második paraméterben adja vissza:

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

Az észlelést magát a kép betöltése nélkül az Image::detectTypeFromFile() végzi.

Méretváltoztatás

Gyakori művelet a kép méreteinek megváltoztatása. Az aktuális méreteket a getWidth() és getHeight() metódusok adják vissza.

A változtatáshoz a resize() metódus szolgál. Példa az arányos méretváltoztatásra úgy, hogy ne haladja meg az 500×300 pixeles méreteket (vagy a szélesség pontosan 500 px lesz, vagy a magasság pontosan 300 px, az egyik méret úgy kerül kiszámításra, hogy megmaradjon az oldalarány):

$image->resize(500, 300);

Lehetséges csak egy méretet megadni, a másik pedig kiszámításra kerül:

$image->resize(500, null); // szélesség 500px, a magasság kiszámításra kerül

$image->resize(null, 300); // a szélesség kiszámításra kerül, magasság 300px

Bármelyik méretet százalékban is meg lehet adni:

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

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

Jelző Leírás
Image::OrSmaller (alapértelmezett) az eredményül kapott méretek kisebbek vagy egyenlőek lesznek a kívánt méretekkel
Image::OrBigger kitölti (és esetleg túllépi az egyik méretben) a célterületet
Image::Cover kitölti a célterületet és levágja azt, ami túllóg
Image::ShrinkOnly csak kicsinyítés (megakadályozza a kis kép nyújtását)
Image::Stretch ne tartsa meg az oldalarányt

A jelzőket a függvény harmadik argumentumaként adjuk meg:

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

A jelzők kombinálhatók:

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

A képeket függőlegesen vagy vízszintesen lehet tükrözni úgy, hogy az egyik méretet (esetleg mindkettőt) negatív számként adjuk meg:

$flipped = $image->resize(null, '-100%'); // függőleges tükrözés

$flipped = $image->resize('-100%', '-100%'); // 180°-os forgatás

$flipped = $image->resize(-125, 500); // átméretezés és vízszintes tükrözés

A kép kicsinyítése után finom élesítéssel javítható a megjelenése:

$image->sharpen();

Vágás

A vágáshoz a crop() metódus szolgál:

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

Hasonlóan a resize()-hoz, minden érték megadható százalékban. A $left és $top százalékai a fennmaradó helyből számítódnak, hasonlóan a CSS background-position tulajdonságához:

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

A képet automatikusan is le lehet vágni, például a fekete szegélyek levágása:

$image->cropAuto(IMG_CROP_BLACK);

A cropAuto() metódus az imagecropauto() függvény objektumorientált helyettesítője, dokumentációjában további információkat talál.

Színek

Az ImageColor::rgb() metódus lehetővé teszi a szín meghatározását a piros, zöld és kék (RGB) értékek segítségével. Opcionálisan megadhatja az átlátszósági értéket is 0 (teljesen átlátszó) és 1 (teljesen átlátszatlan) között, tehát ugyanúgy, mint a CSS-ben.

$color = ImageColor::rgb(255, 0, 0); // Piros
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Félig átlátszó kék

Az ImageColor::hex() metódus lehetővé teszi a szín meghatározását hexadecimális formátumban, hasonlóan a CSS-hez. Támogatja a #rgb, #rrggbb, #rgba és #rrggbbaa formátumokat:

$color = ImageColor::hex("#F00"); // Piros
$transparentGreen = ImageColor::hex("#00FF0080"); // Félig átlátszó zöld

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

Rajzolás és szerkesztés

Rajzolhatsz, írhatsz, de a leveleket ne tépd le. Rendelkezésedre állnak a PHP összes képkezelő függvényei, lásd #Metódusok áttekintése, de objektumorientált köntösben:

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

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

Több kép összefűzése

Egy képbe könnyen beilleszthető egy másik kép:

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

// a koordinátákat ismét százalékban lehet megadni
$blank->place($logo, '80%', '80%'); // beillesztjük a jobb alsó sarok közelébe

A beillesztéskor figyelembe veszi az alfakanált, ráadásul befolyásolhatjuk a beillesztett kép átlátszóságát (létrehozunk egy ún. vízjelet):

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

Egy ilyen API-t valóban öröm használni!

Metódusok áttekintése

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

Létrehoz egy új true color képet a megadott méretekkel. Az alapértelmezett szín a fekete.

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

Betölt egy képet egy fájlból és visszaadja a típusát a $detectedFormat-ban.

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

Betölt egy képet egy stringből és visszaadja a típusát a $detectedFormat-ban.

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

Ezt a függvényt az ImageColor osztály váltotta fel, lásd színek.

static typeToExtension (int $type)string

Visszaadja a fájlkiterjesztést a megadott típushoz.

static typeToMimeType (int $type)string

Visszaadja a MIME típust a megadott típushoz.

static extensionToType (string $extension)int

Visszaadja a kép típusát a fájlkiterjesztés alapján.

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

Visszaadja a kép 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 egy stringből és a $width és $height paraméterekben a méreteit is.

static isTypeSupported (int $type)bool

Ellenőrzi, hogy a megadott képtípus támogatott-e.

static getSupportedTypes(): array

Visszaadja a támogatott képtípusok tömbjét.

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

Kiszámítja egy téglalap méreteit, amely egy adott betűtípusban és méretben lévő szöveget foglal magába. Asszociatív tömböt ad vissza, amely tartalmazza a left, top, width, height kulcsokat. A bal margó negatív is lehet, ha a szöveg bal oldali alávágással kezdődik.

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

Visszaad egy képet, amely a forráskép affin transzformált képét tartalmazza egy opcionális vágási területtel. (több).

affineMatrixConcat (array $m1, array $m2)array

Visszaadja két affin transzformációs mátrix összefűzését, ami hasznos, ha több transzformációt kell egyszerre alkalmazni ugyanarra a képre. (több)

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

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

alphaBlending (bool $on)void

Két különböző rajzolási módot tesz lehetővé truecolor képeken. Keverési módban a szín alfa csatornájának komponense, amelyet minden rajzolási függvényben, például a setPixel()-ben használnak, meghatározza, hogy az alapul szolgáló szín milyen mértékben látszódjon át. Ennek eredményeként az adott ponton a meglévő szín automatikusan keveredik a rajzolt színnel, és az eredmény a képbe kerül mentésre. Az eredményül kapott pixel átlátszatlan. Nem keverési módban a rajzolt szín szó szerint másolódik az alfa csatorna információival együtt, és felülírja a cél pixelt. A keverési mód nem érhető el palettás képekre történő rajzoláskor. (több)

antialias (bool $on): void

Aktiválja a simított vonalak és sokszögek rajzolását. Nem támogatja az alfa csatornákat. Csak truecolor képekkel működik.

Az élsimított primitívek használata átlátszó háttérszínnel váratlan eredményekhez vezethet. A keverési módszer a háttérszínt ugyanúgy használja, mint az összes többi színt. (több)

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

Rajzol egy körívet a megadott koordinátákon középponttal. (több)

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

Visszaad egy színazonosítót, amely a megadott RGB komponensekből álló színt képviseli. Minden olyan szín létrehozásához meg kell hívni, amelyet a képben használni kívánnak. (több)

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

Ugyanúgy viselkedik, mint a colorAllocate(), az átlátszósági paraméter $alpha hozzáadásával. (több)

colorAt (int $x, int $y)int

Visszaadja a kép megadott helyén lévő pixel színindexét. Ha a kép truecolor, ez a függvény a pixel RGB értékét adja vissza egész számként. Használjon biteltolást és bitmaszkolást a piros, zöld és kék komponensek különálló értékeinek eléréséhez: (több)

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

Visszaadja a kép palettájában lévő szín indexét, amely a „legközelebb” van a megadott RGB értékhez. A kívánt szín és a paletta minden színe közötti „távolság” úgy kerül kiszámításra, mintha az RGB értékek pontokat jelölnének egy háromdimenziós térben. (több)

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

Visszaadja a kép palettájában lévő szín indexét, amely a „legközelebb” van a megadott RGB értékhez és $alpha szinthez. (több)

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

Megszerzi annak a színnek az indexét, amelynek árnyalata, fehérsége és feketesége a legközelebb áll a megadott színhez. (több)

colorDeallocate (int $color)void

Deallokál egy korábban a colorAllocate() vagy colorAllocateAlpha() segítségével lefoglalt színt. (több)

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

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

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

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

colorMatch (Image $image2)void

Hozzáigazítja a paletta színeit a második képhez. (több)

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

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

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

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

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

Beállítja a paletta megadott indexét a megadott színre. (több)

colorsForIndex (int $index)array

Megszerzi a megadott index színét. (több)

colorsTotal(): int

Visszaadja a képpaletta színeinek számát. (több)

colorTransparent (?int $color=null)int

Megszerzi vagy beállítja az átlátszó színt a képben. (több)

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

Alkalmaz egy konvolúciós mátrixot a képre, a megadott együtthatót és eltolást használva. (több)

Bundled GD extension jelenlétét igényli, tehát nem biztos, hogy mindenhol működik.

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

Másolja a $src egy részét a képre a $srcX, $srcY koordinátáktól kezdve $srcW szélességgel és $srcH magassággal. A definiált rész a $dstX és $dstY koordinátákra lesz másolva. (több)

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

Másolja a $src egy részét a képre a $srcX, $srcY koordinátáktól kezdve $srcW szélességgel és $srcH magassággal. A definiált rész a $dstX és $dstY koordinátákra lesz másolva. (több)

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

Másolja a $src egy részét a képre a $srcX, $srcY koordinátáktól kezdve $srcW szélességgel és $srcH magassággal. A definiált rész a $dstX és $dstY koordinátákra lesz másolva.

Ez a függvény azonos a copyMerge() függvénnyel, azzal a kivétellel, hogy az egyesítéskor megőrzi a forrás árnyalatát azáltal, hogy a cél pixeleket szürkeárnyalatosra konvertálja a másolási művelet előtt. (több)

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

Másol egy téglalap alakú részt az egyik képről a másikra, simán interpolálva a képpontok értékeit, így különösen a kép méretének csökkentésekor is megmarad a nagy tisztaság.

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

Ha a forrás- és célkoordináták, a szélesség és a magasság eltérőek, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ezt a funkciót ugyanazon a képen belüli területek másolására is lehet használni, de ha a területek átfedik egymást, az eredmények nem lesznek kiszámíthatóak. (több)

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

Másol egy téglalap alakú részt az egyik képről a másikra. Más szavakkal, a copyResized() vesz egy téglalap alakú területet a $src-ből $srcW szélességgel és $srcH magassággal a ($srcX, $srcY) pozícióban, és elhelyezi azt a kép egy téglalap alakú területére $dstW szélességgel és $dstH magassággal a ($dstX, $dstY) pozícióban.

Ha a forrás- és célkoordináták, a szélesség és a magasság eltérőek, a képfragmentum megfelelő nyújtása vagy zsugorítása történik. A koordináták a bal felső sarokra vonatkoznak. Ezt a funkciót ugyanazon a képen belüli területek másolására is lehet használni, de ha a területek átfedik egymást, az eredmények nem lesznek kiszámíthatóak. (több)

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

Levágja a képet a megadott téglalap alakú területre. A méreteket meg lehet adni egész számként pixelekben vagy stringként százalékban (például '50%').

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

Automatikusan levágja a képet a megadott $mode szerint. (több)

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

Rajzol egy ellipszist a megadott koordinátákon középponttal. (több)

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

Kitölt egy területet a megadott koordinátától kezdve (bal felső sarok 0, 0) a megadott $color színnel. (több)

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

Rajzol egy részleges ívet a megadott koordinátákon középponttal. (több)

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

Rajzol egy ellipszist a megadott koordinátákon középponttal. (több)

filledPolygon (array $points, ImageColor $color)void

Létrehoz egy kitöltött sokszöget a képen. (több)

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

Létrehoz egy $color színnel kitöltött téglalapot a képen, a $x1 & $y1 ponttól kezdve és a $x2 & $y2 ponttal végződve. A 0, 0 pont a kép bal felső sarka. (több)

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

Létrehoz egy $color színnel kitöltött téglalapot a képen, a $left & $top ponttól kezdve $width szélességgel és $height magassággal. A 0, 0 pont a kép bal felső sarka.

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

Kitöltést rajzol, amelynek szegélyszínét a $border határozza meg. A kitöltés kezdőpontja $x, $y (bal felső sarok 0, 0), és a terület a $color színnel van kitöltve. (több)

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

Alkalmazza a megadott $filtertype szűrőt a képre. (több)

flip (int $mode): void

Tükrözi a képet a megadott $mode segítségével. (több)

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

Szöveget ír a képbe. (több)

gammaCorrect (float $inputgamma, float $outputgamma)void

Gamma korrekciót alkalmaz a képre a bemeneti és kimeneti gamma értékekhez viszonyítva. (több)

getClip(): array

Visszaadja az aktuális vágási területet, azaz azt a területet, amelyen kívül nem rajzolódnak pixelek. (tö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 átlapolt módot. Ha az átlapolt mód be van állítva, és a kép JPEG formátumban van mentve, akkor progresszív JPEG-ként lesz mentve. (több)

isTrueColor(): bool

Megállapítja, hogy a kép truecolor-e. (több)

layerEffect (int $effect)void

Beállítja az alfa keverési jelzőt a réteghatások használatához. (több)

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

Vonalat rajzol két megadott pont között. (több)

openPolygon (array $points, ImageColor $color)void

Nyitott sokszöget rajzol a képre. Ellentétben a polygon() függvénnyel, az utolsó és az első pont között nem rajzolódik vonal. (több)

paletteCopy (Image $source)void

Másolja a palettát a $source-ból a képbe. (több)

paletteToTrueColor(): void

Átalakít egy paletta alapú képet teljes színű képpé. (több)

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

Másolja az $image-et a képbe a $left és $top koordinátákra. A koordinátákat meg lehet adni egész számként pixelekben vagy stringként százalékban (például '50%').

polygon (array $points, ImageColor $color)void

Sokszöget hoz létre a képen. (több)

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

Téglalapot hoz létre a megadott koordinátákon. (több)

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

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

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

Átméretezi a képet, további információk. A méreteket meg lehet adni egész számként pixelekben vagy stringként százalékban (például '50%').

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

Beállítja vagy visszaadja a kép felbontását DPI-ben (pont per hüvelyk). Ha egyik opcionális paraméter sincs megadva, az aktuális felbontás indexelt tömbként kerül visszaadásra. Ha csak a $resX van megadva, a vízszintes és függőleges felbontás erre az értékre lesz beállítva. Ha mindkét opcionális paraméter meg van adva, a vízszintes és függőleges felbontás ezekre az értékekre lesz beállítva.

A felbontás csak metaadatként használatos, amikor a képeket olyan formátumokban olvassák és írják, amelyek támogatják ezt a fajta információt (jelenleg PNG és JPEG). Nincs hatással semmilyen rajzolási műveletre. Az új képek alapértelmezett felbontása 96 DPI. (több)

rotate (float $angle, int $backgroundColor)Image

Elforgatja a képet a megadott $angle szöggel fokban. A forgatás középpontja a kép közepe, és a forgatott kép méretei eltérhetnek az eredeti kép méreteitől. (több)

Bundled GD extension jelenlétét igényli, tehát nem biztos, hogy mindenhol működik.

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

Elmenti a képet egy fájlba.

A tömörítés minősége 0..100 tartományban van JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetén, és 0..9 tartományban PNG (alapértelmezett 9) esetén. Ha a típus nem egyértelmű a fájlkiterjesztésből, megadhatja az ImageType konstansok egyikével.

saveAlpha (bool $saveflag)void

Beállítja a jelzőt, hogy a PNG képek mentésekor megőrizze-e a teljes alfa csatorna információt (ellentétben az egyszínű átlátszósággal).

Az alfablendinget ki kell kapcsolni (alphaBlending(false)), hogy az alfa csatorna először megmaradjon. (több)

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

Méretezi a képet a megadott interpolációs algoritmus segítségével. (több)

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

Kimenti a képet a böngészőbe.

A tömörítés minősége 0..100 tartományban van JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetén, és 0..9 tartományban PNG (alapértelmezett 9) esetén.

setBrush (Image $brush)void

Beállítja az ecset képét, amelyet minden vonalrajzoló funkció (például line() és polygon()) használni fog, amikor speciális IMG_COLOR_BRUSHED vagy IMG_COLOR_STYLEDBRUSHED színekkel rajzolnak. (több)

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

Beállítja az aktuális vágási területet, azaz azt a területet, amelyen kívül nem rajzolódnak pixelek. (több)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Beállítja az interpolációs módszert, amely befolyásolja a rotate() és affine() metódusokat. (több)

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

Pixelt rajzol a megadott koordinátára. (több)

setStyle (array $style)void

Beállítja a stílust, amelyet minden vonalrajzoló funkció (például line() és polygon()) használni fog, amikor speciális IMG_COLOR_STYLED színnel vagy IMG_COLOR_STYLEDBRUSHED színű képekkel rajzolnak vonalakat. (több)

setThickness (int $thickness)void

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

setTile (Image $tile)void

Beállítja a csempe képét, amelyet minden régiókitöltő funkció (például fill() és filledPolygon()) használni fog, amikor speciális IMG_COLOR_TILED színnel töltenek ki.

A csempe egy kép, amelyet egy terület ismétlődő mintával való kitöltésére használnak. Bármilyen képet lehet csempeként használni, és a csempe kép átlátszó színindexének a colorTransparent() segítségével történő beállításával olyan csempét lehet létrehozni, ahol az alapul szolgáló terület bizonyos részei átlátszanak. (több)

sharpen(): Image

Élesíti a képet.

Bundled GD extension jelenlétét igényli, tehát nem biztos, hogy mindenhol működik.

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

Elmenti a képet egy stringbe.

A tömörítés minősége 0..100 tartományban van JPEG (alapértelmezett 85), WEBP (alapértelmezett 80) és AVIF (alapértelmezett 30) esetén, és 0..9 tartományban PNG (alapértelmezett 9) esetén.

trueColorToPalette (bool $dither, int $ncolors)void

Átalakít egy truecolor képet palettás képpé. (több)

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

Kimenti a megadott szöveget a képbe. (több)

verzió: 4.0