是否有人有功能以指定的字母间距绘制ttf字符串(imagettftext)?

我找不到任何内置的GD函数,因此我认为应该逐个字母地添加一些恒定宽度来完成它。

也许有人已经有这样的功能了:)

ps。最好的字体是arial.ttf

最佳答案

function imagettftextSp($image, $size, $angle, $x, $y, $color, $font, $text, $spacing = 0)
{
    if ($spacing == 0)
    {
        imagettftext($image, $size, $angle, $x, $y, $color, $font, $text);
    }
    else
    {
        $temp_x = $x;
        for ($i = 0; $i < strlen($text); $i++)
        {
            $bbox = imagettftext($image, $size, $angle, $temp_x, $y, $color, $font, $text[$i]);
            $temp_x += $spacing + ($bbox[2] - $bbox[0]);
        }
    }
}

并致电:
imagettftextSp($image, 30, 0, 30, 30, $black, 'arial.ttf', $text, 23);

函数参数顺序符合标准的imagettftext参数顺序,最后一个参数是可选的$ spacing参数。如果未设置或传递的值为0,则不设置字距/字母间距。

关于php imagettftext字母间距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6926613/

10-09 01:00