PHP使用GD库生成文字图片时如何调整增大字体大小?
你当前使用的imagestring()是GD库的基础文字绘制接口,第二个参数为内置字体编号,仅支持1-5的取值,数值越大字体越大。如果只需要小幅度放大文字,直接把该参数调大即可,比如修改为最大的5:
imagestring($im, 5, 5, 5, $yazi, $text_color);
如果内置最大字体还是无法满足大小需求,就需要换成支持自定义字号、自定义字体的imagettftext()函数实现,该方法可以任意设置文字尺寸,需要提前准备一份TTF格式的字体文件(比如常用的宋体、黑体字体文件都可以)放到项目可读取的路径下,修改后的代码参考:
<?php // 创建图像 $im = imagecreatetruecolor($x, $y); $text_color = imagecolorallocate($im, $r, $g, $b); // 自定义字体大小,单位为磅,可随意调整数值 $font_size = 20; // TTF字体文件路径,这里填你自己的字体文件实际路径 $font_path = './simsun.ttf'; // 绘制文字,参数依次为:图像资源、字体大小、旋转角度、x坐标、y坐标、文字颜色、字体路径、文字内容 imagettftext($im, $font_size, 0, 5, $font_size + 5, $text_color, $font_path, $yazi); // 保存图片 imagejpeg($im, 'esmer.jpg'); imagedestroy($im); ?>
使用该方法的注意事项:
imagettftext的y坐标对应的是文字基线的位置,和imagestring以文字左上角为基准的规则不同,你可以根据显示效果调整坐标值避免文字被截断- 如果需要输出中文,要保证
$yazi变量的编码为UTF-8,否则会出现乱码 - 确保你的PHP环境开启了GD库的FreeType支持,绝大部分默认安装的PHP环境都已经开启该配置
内容的提问来源于stack exchange,提问作者user16578365
相关产品推荐
相关产品推荐

