Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Łamanie linii w PHP:GD - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Łamanie linii w PHP:GD (/thread-%C5%82amanie-linii-w-php-gd)



Łamanie linii w PHP:GD - MatixYo - 25-11-2011

Witam,
Otóż na swoją stronę stworzyłem skrypt tworzący obrazek z dodanego przez użytkowników tekstu. Niestety tekst mieści się tylko w jednej linijce i nie chce przeskoczyć do następnych. Ja natomiast chciałbym aby tekst w zależności od jego ilości rozkładał się na linijki. Co zrobić? To się chyba nazywa łamanie linii jednak nigdzie nie ma informacji na ten temat...


RE: Łamanie linii w PHP:GD - uriziel01 - 28-11-2011

Jedynym sposobem jest zrobienie tego na poziomie PHP (wygląda na te że GD nie ma pełnej obsługi formatowania tekstu), napisz funkcje która z zadanego stringa zrobi ci zmienna tablicową dzieląc go po zadanej ilości znaków, sprawdzaj tylko też czy aktualny znak to spacja, nastepnie wyświetlaj poszczególne elementy tej tablicy w pętli zwiększając zmienną Y dla każdej kolejnej.
Voila ! Masz łamanie linii w GD Smile


RE: Łamanie linii w PHP:GD - Kartofelek - 28-11-2011

Pewnie istnieją do tego biblioteki. Ogólnie to robiło się tak jak opisał to kolega wyżej, z tym że używało się też
http://php.net/manual/en/function.imagettfbbox.php
żeby określić czy dany string mieści się w danych wymiarach. Ale jak napisałem - jest pewnie do tego milion pińset bibliotek.


RE: Łamanie linii w PHP:GD - MatixYo - 28-11-2011

Po co bawić się z bibliotekami?
Znalazłem taki skrypt:
Kod PHP:
$lines explode('|'wordwrap($text115'|'));
$y 10;
foreach (
$lines as $line)
{
    
imagettftext($image$font_size050$y$font_color$font$line);
    
$y += 23;

Działa i chwalę go sobie, ale nie raz gubi linie.
Tzn. co około 10 linijek "zapomina" dodać 23 do zmiennej $y.
Zastanawiam się czy to wina kodu, czy serwer nie wyrabia?
Serwer mam na 000webhost.
Dodam też, że mam tam skrypt który wyznacza kolor alpha na kolor w pozycji 0x0.
Skrypt szczególnie na okrągłych obiektach źle wycina piksele (poszarpane tło na bokach).



RE: Łamanie linii w PHP:GD - Kartofelek - 28-11-2011

E tam Smile Lepiej sprawdzić wielkość tekstu podaną przeze mnie funkcją. Dzięki temu masz emy, a to prosta droga do prawidłowego liczenia y.
y += em * 0.8 itp