在php中,考虑到字体和字体大小,有一种简单的方法可以在imagettftext和imagefilledarc的中心绘制文字吗?
示例:
我正在使用尺寸为16的Verdana Bold,我希望将“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吗? 是否有计算字体像素宽度的函数?
样品镜头:
答案 0 :(得分:1)
使用
解决$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);
感谢。