Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将文本置于圆的中心?_Php_Image_Text_Gd_Geometry - Fatal编程技术网

Php 如何将文本置于圆的中心?

Php 如何将文本置于圆的中心?,php,image,text,gd,geometry,Php,Image,Text,Gd,Geometry,在php中,考虑到字体和字体大小,是否有一种简单的方法可以在中间绘制文本 示例: 我用的是Verdana粗体,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, $

在php中,考虑到字体和字体大小,是否有一种简单的方法可以在中间绘制文本

示例
我用的是Verdana粗体,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);
考虑到字体的变化,如何自动调整大小

也可以使用?
是否有计算字体像素宽度的函数

示例快照:

使用

$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);

谢谢。

如果您知道文本的大小,您可以通过从
$cx
$cy
中减去文本宽度的一半和文本高度的一半来计算文本相对于圆心的位置。要获取文本大小,请参见: