Hogyan lehet igazítani a szöveget egy képben (php)

A generált, PHP (GDLib) segítségével a képeket gyakran le kell vonni a szövegből. Néha ezt a szöveget középre kell helyezni, bármely pontról vagy jobbra. A szöveg mérete általában eltérő méretű, ezért ki kell találnia a szöveg méretét képpontokban és kivonni a szöveg kimeneti pontjából.

A funkciók listája

A fő funkciók, amire szükség van a szöveg igazításához:

ImageTTFBBox

array imagettfbbox (float méret, float szög, string fontfile, szövegszöveg) - a függvény egy téglalap koordinátáinak tömbjét adja vissza, amelyben szigorúan megírhatja a feliratszöveg szövegét. méretű úszóméret. a lebegési szög lejtésével és a font-karakterlánc karakterlánccal.

ImageTTFText

A tömb imagettftext (erőforrás kép, lebegő méret, lebegési szög, int x, int y, int szín, string fontfile, szövegszöveg) funkció egy szöveg megjelenítéséhez egy képen.

Mintaoldat

Egy példa alapján levonjuk a függőleges vonalra vonatkozó szöveget. Balra, középre és jobbra.

// Regisztrálja a PNG képfejlécet
header ('Content-type: image / png');

// Kép létrehozása
$ im = imagecreatetruecolor (800 180);

// A középpontban (az X tengely mentén) 400-at veszünk
$ CENTER = 400;

// Szöveg betűtípus
$ FONT = 'ptserif.ttf';

// Színek létrehozása
$ white = imagecolorallocate ($ im 0xFF, 0xFF, 0xFF); fehér
$ szürke = imagecolorallocate ($ im. 0xDD .0xDD .0xDD); // szürke
$ red = imagecolorallocate ($ im. 0x99 .0x33 .0x33); piros
$ green = imagecolorallocate ($ im 0x33 .0x99 .0x33); // zöld
$ blue = imagecolorallocate ($ im 0x33 .0x33 .0x99); // kék

// Töltse fel a képet fehér színnel
imagefill ($ im 1. 1. $ fehér);

// Vonja a vonalakat
imageline ($ im. $ CENTER. $ CENTER 180. $ szürke);
imageline ($ im 0. 0. 60. 800. 60. $ szürke);
imageline ($ im 0. 0. 120. 800. 120. $ szürke);


/ **
* A szöveg balra, minden nagyon egyszerű.
* /
imagettftext ($ 11. 11. $ CENTER 20. $ piros. $ FONT "Szöveg a BALEGÉLY-ban");
imagettftext ($ im 11. 0. $ CENTER .50. $ red. $ FONT 'A szöveg a BALRA szélén is található');


/ **
* Szöveg a közepén.
* /
// a méret a szöveg a koordináták alatt
$ box = imagettfbbox (11. 0. $ FONT 'Szöveg a CENTER'-ban);
// a bal oldali behúzás mérete, hogy a szöveg az adott pont közepén legyen
$ bal = $ CENTER - kerek (($ box [2] - $ box [0]) / 2);
imagettftext ($ 11. 11. $ left 80. $ green $ FONT 'Szöveg a CENTER'-ban);

// szöveg a középső számban 2
$ box = imagettfbbox (11. 0. $ FONT. "Ez a nagyon fontos szöveg igazodik a CENTERhez");
$ left = $ CENTER - round (($ box [2] - $ box [0]) / 2);
imagettftext $ 11. 11. $ left $ 110. $ FONT Ez a nagyon fontos szöveg igazodik a CENTER-hez;


/ **
* A jobb oldali szöveg
* Majdnem mindössze "középre", csak 2-es osztással nem kell balra behúzódni
* /
$ box = imagettfbbox (11. 0. $ FONT "Szöveg a jobb oldalon");
$ left = $ CENTER - ($ box [2] - $ box [0]);
imagettftext ($ 11. 11. $ balra 140. $ kék $ FONT 'Szöveg a jobb oldalon');

$ box = imagettfbbox (11. 0. $ FONT. 'Ez a nagyon fontos szöveg igazodik a jobb oldali élhez');
$ left = $ CENTER - ($ box [2] - $ box [0]);
imagettftext ($ im 11. 11. $ left 170. $ kék $ FONT 'Ez a nagyon fontos szöveg igazodik a jobb oldali élhez');


// A kép megjelenítése
imagepng ($ im);

Kapcsolódó cikkek