php自动根据字体大小, 角度, 字体名称, 字符串, 预设宽度做换行处理

在写图片生成的时候发现会出现一段话超长,然后需要换行的情况,于是写了这么个方法进行处理文字,最后会返回换行后的文字数据

 

function autowrap($fontsize, $angle, $fontface, $string, $width)
{
// 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度
    $content = "";

    // 将字符串拆分成一个个单字 保存到数组 letter 中
    for ($i = 0; $i < mb_strlen($string); $i++) {
        $letter[] = mb_substr($string, $i, 1);
    }

    foreach ($letter as $l) {
        $teststr = $content . " " . $l;
        $testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr);
        // 判断拼接后的字符串是否超过预设的宽度
        if (($testbox[2] > $width) && ($content !== "")) {
            $content .= "\n";
        }
        $content .= $l;
    }
    return $content;
}
版权说明:若无特殊注明,转载请保留文章出处
文章分类: 技术乐园
字数统计:本文共有 492 个
本文链接:http://www.poxiaowy.com/?post=21

标签:

精彩评论