[ Nemanja Avramović @ 24.06.2005. 00:20 ] @
kako da centriram tekst na slici...? znaci php dobija parametar jedan tekst i njega ispisuje na slici koja je fiksne sirine (i visine)....

i da, kako prelomiti tekst (\n) koji se ispisuje na slici, ako je ikako moguce? ovo mi nije bitno, samo pitam informativno

p.s. primecuje se da radim sa gd-om u poslednje vreme, zar ne? :D

eh da, primetio sam kad kod f-je imagettftext stavim top i left na 0 i 0 i ne vidi mi se tekst... zasto? tek kad stavim na 20/20 vidi se (kad je velicina slova 20)
na koju foru to "radi"?
[ Br@nkoR @ 24.06.2005. 06:16 ] @
Ja zam pozicioniranje teksta radio pomoću funkcije imagettfbbox() tako što pomoću nje izračunam veličinu tekst box-a pa zatim izračunavao poziciju na koju je potrebno postaviti.

Za prelom teksta nisam siguran da li postoji neka funkcija u php-u koja radi to, ali možda neko zna neko rešenje.

Za treće pitanje, pogledaj u php manualu:
Citat:
The coordinates given by x, y will define the basepoint of the first character (roughly the lower-left corner of the character).
[ Nemanja Avramović @ 24.06.2005. 08:59 ] @
3) pa sto donji levi bre? kako sad da namestim da se uvek vidi tekst sto nije gornji levi... onda bi bilo lakse

1) eksperimentisacu malo sa imagettfbbox() ali ako ne skontam, eto mene opet

2) ok... ionako nije bitno
[ Nemanja Avramović @ 24.06.2005. 17:56 ] @
ne, nisam skontao sta i kako ovo radi... ja mu posaljem
Code:

imagettfbbox ( float size, float angle, string fontfile, string text)


...i on kreira negde tu sliku (mi je ne vidimo) i vrati mi koordinate tachaka... ali shta ja posle sa njima da radim da bih centrirao tekst... kontam ja da je ovo lako, ali neshto mi stao mozak

cek da probam:
1) izracunam razdaljinu izmedju X_gornje_desne i X_gornje_leve i dobijem sredishnju tachq, pa onda izracunam pola sirine celog teksta
2) uzmem polovinu moje slike
3) iscrtam tekst na pola_moje_slike - pola_sirine_teksta

jel' tako?
'ajde ja cu probati to, a vi recite jel' tako ili ne?
[ Nemanja Avramović @ 24.06.2005. 18:08 ] @
e, nesto mi ne ide ... sad mi ne prikazuje sliku uopste :(

evo koda
Code:

//uzimam informacije
$code = $_GET["tekst"];
$size = $_GET["velicina"];
$rgb = hexdec($_GET['boja']) ;
$font_file = 'font.ttf'; //predefinisan font, uzimacu ga kroz opcije posle
//uzimam rgb
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$myTextLen = (strlen($code)); //ne znam sta ce mi ovo :)

//kreiram sliku $safeemail (sve sam poceo od nekog primera da radim)
$safeemail = imagecreate(200,200);
$backcolor = imagecolorallocate($safeemail,255,255,255);
$textcolor = imagecolorallocate($safeemail,$r,$g,$b);
imagefill($safeemail,0,0,$backcolor);
imagecolortransparent($safeemail,$backcolor);

//uzmam koordinate tog ttf bounding box-a
$koordinate = imagettfbbox($size,0,$font_file,$code);
//rasporedjujem u posebne koordinate
gornja_desna_x = $koordinate[4]; //ne treba \\ gornja_desna_y = $koordinate[5];
gornja_leva_x = $koordinate[6]; //ne treba \\ gornja_leva_y = $koordinate[7];

//racunam sredinu
$sredina = $gornja_desna_x - $gornja_leva_x;

//pola od te duzine je:
$pola = $sredina - $gornja_leva_x;

//slika je siroka 200px, zato ide 100 - pola
$crtaj_x = 100 - $pola;

//crtam po slici
imagettftext($safeemail, $size, 0, $crtaj_x, $size+10, $textcolor, $font_file, $code);

//izbacujem sliq
header("Content-type: image/gif");
imagegif($safeemail);

[ Br@nkoR @ 24.06.2005. 20:18 ] @
Code:

$code = $_GET["tekst"];
$size = $_GET["velicina"];
$rgb = hexdec($_GET['boja']) ;
$font_file = 'font.ttf';
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$safeemail = imagecreate(200,200);
$backcolor = imagecolorallocate($safeemail,255,255,255);
$textcolor = imagecolorallocate($safeemail,$r,$g,$b);
imagefill($safeemail,0,0,$backcolor);
imagecolortransparent($safeemail,$backcolor);
$koordinate = imagettfbbox($size,0,$font_file,$code);
$width = $koordinate[4] - $koordinate[6]; // moze i:  $koordinate[2] - $koordinate[0]
$posX = (200-$width)/2;
$posY = $size + 10; // kod tebe je ovako definisano, ja sam mislio da ti je potrebno i vertikalno da centriras tekst
imagettftext($safeemail, $size, 0, $posX, $posY, $textcolor, $font_file, $code);
header("Content-type: image/gif");
imagegif($safeemail);
[ Nemanja Avramović @ 25.06.2005. 01:57 ] @
e, ne znam sta si mu uradio, ali ovako radi :)

p0z
i hvala

p.s. javicu se ja opet, ne brini ;)