Центрирование многострочного текста на строке изображения не увеличивается должным образом

Нужна помощь с кодом.

Моя первая строка получает разрыв после первого слова, а четвертая строка - над моей третьей строкой. Кажется, что в первой строке он разрывается после одного слова, в то время как остальное в порядке, кроме последнего приращения строки, которое перекрывает текст.

При этом ссылка на Пример - Изображение

$main_img = @imagecreatefromjpeg('img/bg-img.jpg');

$mx = 1200; 
$my = 660; 

//TEXT VARS///////// 
$main_text = "$title->nodeValue";
$mt_f = 'the_unseen.ttf';
$main_text_size = 40; 
$main_text_x = ($mx/2); 
$color_black = imagecolorallocate($main_img, 0, 0, 0);
$color_white = imagecolorallocate($main_img, 176, 224, 230);

$words = explode(' ', $main_text); 
$lines = array($words[0]); 
$currentLine = 1; 
for($i = 1; $i < count($words); $i++) 
{ 
    $lineSize = imagettfbbox($main_text_size, 0, $mt_f, $lines[$currentLine] . ' ' . $words[$i]); 
    if($lineSize[2] - $lineSize[0] < $mx) 
    { 
        $lines[$currentLine] .= ' ' . $words[$i]; 
    } 
    else 
    { 
        $currentLine++; 
        $lines[$currentLine] = $words[$i]; 
    } 
} 
$line_count = 1; 
// Loop through the lines and place them on the image 
foreach ($lines as $line) 
{ 
$line_box = imagettfbbox($main_text_size, 0, $mt_f, "$line"); 
$line_width = $line_box[0]+$line_box[2]; 
$line_height = $line_box[1]-$line_box[7]; 
$line_margin = ($mx-$line_width)/2; 
$line_y = (($line_height+12) * $line_count); 
imagettftext($main_img, $main_text_size, 0, $line_margin, $line_y, $color_black, $mt_f, $line); 

// Increment Y so the next line is below the previous line 
$line_count ++; 
} 

0 ответов

Другие вопросы по тегам