Неверная позиция вывода в PHP-функции imagettftext - PullRequest
0 голосов
/ 29 августа 2018

Я хочу выровнять текст по центру.

Но не всегда PHP-функция imagettftext работает правильно.

Ограничивающий прямоугольник правильный. Но проблема в том, что эта функция выводит текст.

imagettftext output & bounding rectangle

Это программная ошибка или есть какой-то способ отрегулировать положение? Как это исправить?

PHP-код

// prepare canvas
$im = imagecreate(400, 200);
$white = imagecolorallocate($im,  255, 255, 255);
$black = imagecolorallocate($im,  0, 0, 0);
$red = imagecolorallocate($im,  255, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 199, $white);

$text = "17";
$size = 50;
$fontfile = "ShareTechMono-Regular.ttf";
$outp_x = 50; 
$outp_y = 150;
$bbox = imagettftext($im,  $size,  0,  $outp_x,  $outp_y,  $black,  $fontfile,  $text);
imagerectangle($im,  $bbox[0],  $bbox[1],  $bbox[4],  $bbox[5],  $red);

// output
header('Content-Type: image/png');
imagepng($im);

_

А это Ариал. Разные символы ведут себя по-разному.

enter image description here

(моя ОС: Windows 7)

...