Как центрировать текст по кругу? - PullRequest
2 голосов
/ 28 августа 2011

в php, есть простой способ рисовать текст с imagettftext и imagefilledarc в центре, учитывая шрифт и размер шрифта

Пример :
Я использую Verdana Bold, размер 16, и я хочу центрировать текст "1234567890" в моем круге.

$font = './verdanab.ttf';
$fsize = 16;
$text = "1234567890";
imagefilledarc ($im, $cx, $cy, $w, $h, 0, 360, $color, 0);
imagettftext   ($im, $fs, 0, $x, $y, $black, $font, $text);

как я могу автоматически изменить размер, учитывая изменение шрифта?

Можно также использовать imagefontwidth ?
Есть ли функция, которая считает ширину пикселей шрифта?

Пример снимка:
enter image description here

1 Ответ

1 голос
/ 29 августа 2011

Решено с помощью

$txtSize = imagettfbbox($fs, 0, $font, $text); // idx [2] is text width in pixel

$buffer = 20;
$w = $h = $txtSize[2] + $buffer;
$x = $cx - ($txtSize[2]/2);

imagefilledarc ($im, $cx, $cy, $w, $h, 0, 360, $color, 0);
imageAlphaBlending($im, true);
imagettftext   ($im, $fs, 0, $x, $y, $black, $font, $text);

спасибо.

...