thinkphp5 图像处理类,实现多行文本水印

浏览:2001 发布日期:2017/11/07 分类:技术分享 关键字: image 图像处理 文字水印
官方的image类在添加水印时,只能加一行文字。
实际开发中涉及到的推广海报调用的文字需多行展示,修改text()方法来实现。
改动并不大,开始位置:$text = explode('|', $text); //把字符串文字转为数组,没有分隔符的文字可以通过函数按照制定长度来分割
        $maxtext = 0;
        foreach ($text as $val) {
            $maxtext = strlen($val) > strlen($maxtext) ? $val : $maxtext;
        }
        if (!is_file($font)) {
            $this->error='not_exist_font';
            $this->error['not_exist_font']=":{$font}";
        }
        //获取文字信息
        $info = imagettfbbox($size, $angle, $font, $maxtext);
        $textHeight = $info[1] - $info[7];
        $lineHeight = $textHeight + 3;
底部写入文字代码,加一个循环即可foreach ($text as $key => $val) {
                imagettftext($this->im, $size, $angle, $x + $ox, $y + $oy + $key * $lineHeight, $col, $font, $val);
            }
我们把传入的字符串转为数组后,循环添加文字水印时,只是增加$lineHeight高度而已。
就这样实现了多行文本水印。
最佳答案
评论( 相关
后面还有条评论,点击查看>>