php imagettftext 生成文字实现自动换行并设置行高
作者:xlnxin发布时间:2023-12-03分类:其他教程浏览:914
导读:/** * 处理规定宽度内自动换行(imagettftext) &nb...
/** * 处理规定宽度内自动换行(imagettftext) * @param $card 画板 * @param $str string 字符串 * @param $width int 规定宽度 * @param $x int 文字生成的x位置 * @param $y int 文字生成的y位置 * @param $fontSize int 字体大小 * @param $font string 字体 * @param $color 字体颜色 * @param $rowHeight 行高 * @return bool */ function handleTextAlign($card, $str, $width, $x, $y, $fontSize, $font, $color, $rowHeight) { $content = ""; $row = 0; $boxText = []; for ($i = 0; $i < mb_strlen($str, 'utf8'); $i++) { $letter = mb_substr($str, $i, 1, 'utf-8');//当前的字 $nextLetter = mb_substr($str, $i + 1, 1, 'utf-8');//当前的字 //第一 获取下一个拼接好的宽度 如果下一个拼接好的已经大于width了,就在当前的换行 如果不大于width 就继续拼接 $content .= $letter; $nextStr = $content . $nextLetter; $fontBox = imagettfbbox($fontSize, 0, $font, $nextStr); if (($fontBox[2] > $width) && ($content !== "")) { //大于限制宽度 直接换行 这一行写入画布 $row = $row + 1; $boxText[] = $content; $content = ""; } else if ($i + 1 == mb_strlen($str, 'utf8')) { $boxText[] = $content; } } //多行减小字体大小 $fontSize = $fontSize - ($row * 2); if ($row > 0){ //y方向的起始位置 $y = $y - ($row + 1) * $rowHeight; } foreach ($boxText as $item){ imagettftext($card, $fontSize, 0, $x, $y, $color, $font, $item); $y += $fontSize + $rowHeight; } return true; }
标签:php
- 其他教程排行
-
- 1抖音极速版给大家发37元过年红包啦,快来领取吧!
- 2统信uos系统默认root密码是多少
- 3admin、0000、admin888、123456 md5加密后16位和32位代码
- 4Windows10 DVDRW识别为CD驱动解决方法,windows无法读取驱动器E:\中的光盘解决方法
- 5国产安可立思辰打印机手动双面打印设置教程
- 6navicat premium 15破解版64位32位 v15.0.3激活方法
- 7快手极速版给大家发56元新年红包啦,快来领取吧!
- 8查找对话框跑出屏幕外看不见了,怎么拖回来?
- 9小程序Cannot read property 'enableUpdateWxAppCode'解决方法
- 最近发表
-
- 小程序img_sec_check图片检测出行"errcode":47001错误解决方法
- win10看图软件不见了解决方法
- 双击excel打开不显示任何内容,只能在excel里面打开文件解决方法
- 小程序saveVideoToPhotosAlbum安卓手机可以下载MP4苹果手机不能下载解决方法
- 小程序逆向错误之 typeof3 is not a function
- 几种常用接口调用方式
- 小程序e.target.dataset和e.currentTarget.dataset区别
- excel vba实现模板批量打印
- lanxum打印机手动打印双面教程图解
- https(ssl)设置301跳转将http跳转到https