Source for file Text.class.php
Documentation is available at Text.class.php
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2008, Takács Ákos
require_once dirname(__FILE__
).
"/../AObject.class.php";
require_once dirname(__FILE__
).
"/../interfaces/IObject.class.php";
* FileExistsException ipmortálása
require_once dirname(__FILE__
).
"/../exceptions/FileExistsException.class.php";
* Szövegeket kezelő osztály
* Ez az osztály végzi a szövegek létrehozását. A szöveg betűmérete és típusa is megadható.
* Alaméprtelmezett típus az <b>Arial</b><br /><br />
* Tipp: A {@link $backGround} tulajdonságot a jó minőség érdekében állítsuk
* azonosra a kép hátterének színével Akkor is, ha a szöveget transparent-re állítjuk!<br /><br />
* Egy egyszerű szöveget a következő módon hozhatunk létre:<br />
* {@example ../examples/text.php}
* Szövegegdoboz koordinátái
* {@link http://php.net/manual/hu/function.imagettfbbox.php}<br />
* Csak olvasható (readonly)
* Alapértelmezett az Arial, de beállítható saját betűtípus is az url megadásával<br />
* Csak olvasható (readonly)
* Csak olvasható (readonly)
* Csak olvasható (readonly)
* A képméret kiszámításához szükséges tulajdonságokat csak konstruktorban lehet
* beállítani. Később módosítani nem lehet.
* @param string $fonttype
function Text($text,$fontsize=
20,$angle=
0,$fonttype =
null)
//Elforgatás átváltása -180 -s +180 fok közé
if (($angle =
$angle %
360) >
180) $angle =
$angle-
360;
//Alapértelmezett fonttípus beállítása
//szöveget körülvevő szövegdoboz koordinátái
$this->ttfbox =
$ttfbox =
imageTTFBBox($fontsize,-
$angle,$fonttype,$text);
//szélesség és magasság kiszámítása
$width =
abs($ttfbox[0]) +
abs($ttfbox[4]);
$height =
abs($ttfbox[1]) +
abs($ttfbox[5]);
$height =
($height <
($maxY =
(abs($ttfbox[3]) +
abs($ttfbox[7]))))
$width =
($width <
($maxX =
(abs($ttfbox[2]) +
abs($ttfbox[6]))))
//Hibás betűtípus esetén kivétel kiváltása
$this->color =
imageColorAllocate($this->source,1,1,1);
* X koordináta beállítása
* $Jx paraméter beállításával megszabható, hogy az X koordinátát a szöveg mely pontjától számolja<br />
* <b>$Jx értékei</b><br/>
* <li>0: Szöveg bal oldalától</li>
* <li>1: szöveg közepétől</li>
* <li>2: szöveg jobb oldalától</li>
* @param int $Jx 0 | 1 | 2
function setX($x,$Jx =
0)
* Y koordináta beállítása
* $Jy paraméter beállításával megszabható, hogy az Y koordinátát a szöveg mely pontjától számolja<br />
* <b>$Jy értékei</b><br/>
* <li>0: Szöveg tetejétől</li>
* <li>1: szöveg közepétől</li>
* <li>2: szöveg aljától</li>
* @param int $Jy 0 | 1 | 2
function setY($y,$Jy =
0)
* Szöveg létrehozása a képen
if ($this->angle <=
90) {
* ($x,$y) koordináták a keret bal alsó koordinátái.
* A szélesség a szöveg szélessége lesz, magassága pedig a szöveg magassága.
$leftTopX =
$x +
$this->ttfbox[6];
$leftTopY =
$y +
$this->ttfbox[7];
$leftBottomX =
$x +
$this->ttfbox[0];
$leftBottomY =
$y +
$this->ttfbox[1];
$rightTopX =
$x +
$this->ttfbox[4];
$rightTopY =
$y +
$this->ttfbox[5];
$rightBottomX =
$x +
$this->ttfbox[2];
$rightBottomY =
$y +
$this->ttfbox[3];
//keret széleségének és magasságának 1 px-el csökkentése
$leftBottomY +=
($this->angle > -
135 &&
$this->angle <=
45) ? -
1 :
1;
$leftBottomX +=
(($this->angle >=
135 &&
$this->angle <=
180)
or ($this->angle < -
45 &&
$this->angle >= -
180)) ? -
1 :
1;
$leftTopX +=
(($this->angle >
0 &&
$this->angle <
45)
or $this->angle < -
135) ? -
1 :
1;
$leftTopY +=
(($this->angle >
135 &&
$this->angle <=
180)
or ( $this->angle <= -
45 &&
$this->angle >= -
180 )) ? -
1 :
1;
$rightBottomX +=
($this->angle > -
135 &&
$this->angle <=
45) ? -
1 :
1;
$rightBottomY +=
($this->angle > -
45 &&
$this->angle <=
135) ? -
1 :
1;
$rightTopX +=
($this->angle >= -
45 &&
$this->angle <=
135) ? -
1 :
1;
$rightTopY +=
(($this->angle >
45 &&
$this->angle <=
180)
or $this->angle < -
135) ? -
1 :
1;
$leftBottomX,$leftBottomY,$leftTopX,$leftTopY,
$rightBottomX,$rightBottomY,$rightTopX,$rightTopY,
$leftTopX,$leftTopY,$rightTopX,$rightTopY,
$leftBottomX,$leftBottomY,$rightBottomX,$rightBottomY,
Documentation generated on Tue, 09 Feb 2010 01:17:52 +0100 by phpDocumentor 1.4.1