Képekkel való munka
A 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)