![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym wpisać tekst, którego długości nie znam, i która jest różna, w obrazek o stalym wymiarze: np 180px. Więc logiczne jest, że jeśli cały tekst w jednej linii będzie szerszy niż 180px konieczne będzie jego "złamanie". Zastanawiam się jak to zrobić. Musze napisać funkcję która poda mi pozycję spacji (by nie dzielić całych wyrazów), która podzieli mi owy tekst na dwie częśći (w stosunku najdłuższy możliwy fragment : reszta). oto co spłodziłem do tej pory:
czyli nie za wiele... z funkcji rekurencyjnych zawsze byłem noga :/ jak ot dalej pociągnąć by w odpowiedzi działania funkcji otrzymać pozycję ostatniej spacji, za pomocą której podziele tekst na dwie części i przy pomicji dwóch wywołań funkcji imagettftext() umieszczę na obrazku. delikatnie mówiąc: HELP? (IMG:style_emoticons/default/tongue.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Musze napisać funkcję która poda mi pozycję spacji (by nie dzielić całych wyrazów), która podzieli mi owy tekst na dwie częśći (w stosunku najdłuższy możliwy fragment : reszta). Trzeba by było stworzyć tablicę, która zawiera szerokość poszczególnych znaków dla fontu (nie dotyczy to monospace, oczywiście). Jedziesz pętlą po wyrazach, dopisujesz do stringa sprawdzając przy tym, znak po znaku, jak szeroki jest napis (bazując na wspomnianej wyżej tablicy). Jeśli mniejsze niż limit, robisz to samo sprawdzając, czy następny wyraz (a właściwie jego szerokość) zmieści się w limicie. Jeśli nie - przeskakujesz do następnej linijki, jeśli tak - powtarzasz operację. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 10:39 |