Dzień dobry, mam problem z wycentrowaniem tekstu na obrazku, który jest generowany z poziomu php. Oto fragment kodu:
$tempValue = ''; //tutaj przechowamy tekst docelowy
$sourceText = $tekst;
$tempTab = array(); //tablica to przechowania kolejnych sĹ?Ăłw w tekĹ?cie $tempTab = explode(' ',$sourceText); //dzielimy tekst po spacji $count=1; //licznik potrzebny do Ĺ?amania wierszy
foreach($tempTab as $word){ //dla kaĹźdego elementu tablicy (sĹ?owa)
$tempValue .= $word." "; //dodajemy sĹ?owo i spacjÄ? po nim
if(strlen($tempValue)<300){ //jeĹ?li zdanie ma mniej niĹź 170 znakĂłw //(zaĹ?óşmy Ĺźe tyle zmieĹ?ci siÄ? na rysunku)
if(strlen($tempValue)>=(49
*$count)){ //i jeĹ?li dĹ?ugoĹ?Ä? zdania jest // wielokrotnoĹ?ciÄ? licznika i liczbny 49,
//gdzie 49 to liczba znaków w jednej linii na późniejszym rysunku
$tempValue .= "\n\r"; //to w tym miejscu Ĺ?amiemy liniÄ? co
// spowoduje wyĹ?wietlenie siÄ? kolejnej linii tekstu w nowym wierszu
$count++; //zwiÄ?kszamy licznik
}
}
}
$font = "Aller_BdIt.ttf";
$fontsize = 18;
$fontcolor = ImageColorAllocate($obrazek, 0, 0, 0);
$obrazek = ImageCreateFromJpeg($kolor.".jpg"); //tworzymy obiekt z pliku
$logo = imagecreatefromjpeg('logo.jpg');
function textCenter($obrazek, $tempValue, $fontsize, $font) {
$t = imagettfbbox($fontsize, 0, $font, $tempValue);
$x = (imagesx($obrazek)/2) - (($t[4] - $t[6])/2);
$y = (imagesy($obrazek)/2) + (($t[1] - $t[7])/2);
}
$t = textCenter($obrazek, $tempValue, $fontsize, $font);
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.
Ten post edytował Lukasz149 31.05.2013, 18:58:15