Я динамически создаю графическое меню из PHP, в результате получается только 1 изображение, которое выглядит следующим образом:
One Two Three Four
Проблема, однако, в том, что мне нужно определить смещение по x и ширину каждого заголовка страницы (например, смещение влево и ширину "One" в пикселях), чтобы расположить изображение с помощью css.
Все работает нормально, за исключением заголовков страниц, которые содержат пробелы - imagettfbbox () возвращает неправильные позиции. Я использую ариальный шрифт (TTF)
Какие-нибудь предложения о том, как мне обойти эту проблему?
Редактировать: я получил его сейчас, используя следующую функцию, чтобы определить границы текста:
function calculateTextBox($font_size, $font_angle, $font_file, $text) {
$box = imagettfbbox($font_size, $font_angle, $font_file, $text);
$min_x = min(array($box[0], $box[2], $box[4], $box[6]));
$max_x = max(array($box[0], $box[2], $box[4], $box[6]));
$min_y = min(array($box[1], $box[3], $box[5], $box[7]));
$max_y = max(array($box[1], $box[3], $box[5], $box[7]));
return array(
'left' => ($min_x >= -1) ? -abs($min_x + 1) : abs($min_x + 2),
'top' => abs($min_y),
'width' => $max_x - $min_x,
'height' => $max_y - $min_y,
'box' => $box
);
}
Редактировать 2: К сожалению, я получаю неправильные размеры при использовании шрифтов разных размеров и файлов шрифтов ...