Witam,

Mam taki problem, muszę umieścić na obrazku tekst ale:
-rozmiar obrazka może być różny
-rozmiar czcionki może być różny
-czcionka może nie być monospace (nie wiadomo jak szeroki jest jeden znak)
-teks może posiadać polskie litery
-tekst ma być (możliwie) wyśrodkowany w poziomie i w pionie

Tekst jest umieszczany w bazie danych, razem z informacją jaka czcionka ma być użyta oraz jej rozmiar, a także rozmiar obrazka na którym ma być umieszczony. Sam tekst można też sformatować przed umieszczeniem go w bazie danych (podział na wiersze, dopełnienie wierszy spacjami z obu stron), rozmiar czcionki też można zmienić jeśli nie jest możliwe zmieszczenie całego teksu na danym obrazku.

Jak podzielić tekst na wiersze, tak by optymalnie pasował do rozmiarów danego obrazka przy danym kroju i rozmiarze czcionki? Może być to rozwiązanie w miarę czasochłonne bo będzie wykonywane tylko raz - przed umieszczeniem tekstu w bazie danych. Chce też by tekst nie zajmował całego obrazka ale zostawiał co najmniej 1px z każdej strony.

Myślałem żeby podzielić tekst na tablice słów, wstawiać pojedyncze słowa do tymczasowego łańcucha i sprawdzać po każdym dodaniu słowa czy szerokość łańcucha obliczona na podstawie imagettfbbox() jest mniejsza niż szerokość obrazka, jeśli nie, przed słowem wstawiamy "\n" i testujemy dalej. Na koniec sprawdzamy czy wysokość całości jest mniejsza niż wysokość obrazka, jeśli nie, to zaczynamy od nowa z czcionką o 1 mniejszą. Problem w tym, że gdy wstawię "\n" do ciągu znaków i każe go narysować to imagettftext zamiast nowego wiersza rysuje \n blinksmiley.gif. Może ma ktoś lepszy pomysł jakby to zrobić?

..aha, a żeby nie było tak prosto to muszę to zrobić BEZ ImageMagic.