Dzień dobry, mam problem z wycentrowaniem tekstu na obrazku, który jest generowany z poziomu php. Oto fragment kodu:
  1. $tempValue = ''; //tutaj przechowamy tekst docelowy
  2. $sourceText = $tekst;
  3. $tempTab = array(); //tablica to przechowania kolejnych sĹ?Ăłw w tekĹ?cie
  4. $tempTab = explode(' ',$sourceText); //dzielimy tekst po spacji
  5. $count=1; //licznik potrzebny do Ĺ?amania wierszy
  6. foreach($tempTab as $word){ //dla kaĹźdego elementu tablicy (sĹ?owa)
  7. $tempValue .= $word." "; //dodajemy sĹ?owo i spacjÄ? po nim
  8. if(strlen($tempValue)<300){ //jeĹ?li zdanie ma mniej niĹź 170 znakĂłw
  9. //(zaĹ?óşmy Ĺźe tyle zmieĹ?ci siÄ? na rysunku)
  10. if(strlen($tempValue)>=(49*$count)){ //i jeĹ?li dĹ?ugoĹ?Ä? zdania jest
  11. // wielokrotnoĹ?ciÄ? licznika i liczbny 49,
  12. //gdzie 49 to liczba znaków w jednej linii na późniejszym rysunku
  13.  
  14. $tempValue .= "\n\r"; //to w tym miejscu Ĺ?amiemy liniÄ? co
  15. // spowoduje wyĹ?wietlenie siÄ? kolejnej linii tekstu w nowym wierszu
  16.  
  17. $count++; //zwiÄ?kszamy licznik
  18. }
  19. }
  20. }
  21.  
  22. $font = "Aller_BdIt.ttf";
  23. $fontsize = 18;
  24. $fontcolor = ImageColorAllocate($obrazek, 0, 0, 0);
  25.  
  26. $obrazek = ImageCreateFromJpeg($kolor.".jpg"); //tworzymy obiekt z pliku
  27. $logo = imagecreatefromjpeg('logo.jpg');
  28.  
  29. function textCenter($obrazek, $tempValue, $fontsize, $font) {
  30. $t = imagettfbbox($fontsize, 0, $font, $tempValue);
  31. $x = (imagesx($obrazek)/2) - (($t[4] - $t[6])/2);
  32. $y = (imagesy($obrazek)/2) + (($t[1] - $t[7])/2);
  33. return array("x" => round($x), "y" => round($y));
  34. }
  35.  
  36.  
  37. $t = textCenter($obrazek, $tempValue, $fontsize, $font);
  38. imagettftext($obrazek, $fontsize, 0, $t['x'], $t['y'], $fontcolor, $font, $tempValue);


Tekst jest wyśrodkowany ale jako całość (tekst jest złamany w odpowiednich momentach i jako całość jest środkowany), a ja chciałbym aby każda linia tekstu została wyśrodkowana osobno. Jeśli chodzi o wartość pionową Y to można to pominąć. Y chciałbym mieć stały dla przykładu wyświetlanie tekstu zacznie się w odległości 20 px od góry. Proszę o pomoc.