Codeigniter 4设置水印fontSize不生效 字体大小无法调整问题
问题原因
Codeigniter官方文档标注:「fontSize为所用字体的尺寸,当GD驱动搭配系统字体使用时,有效值范围为1-5」
你当前未指定自定义字体,系统默认调用GD内置的点阵系统字体,该字体本身最大仅支持5号尺寸,无论设置多大的fontSize值都不会生效,也无法实现铺满全宽的水印效果。
解决方法
- 准备TTF格式的自定义字体文件(如开源思源黑体、微软雅黑等),存放到项目可读取的目录中,例如
app/Fonts/simhei.ttf - 在text方法的配置参数中新增
fontPath参数,指向自定义字体的绝对路径,此时fontSize的单位将自动切换为像素,支持任意大小的自定义设置
修正后代码示例
$image = \Config\Services::image() ->withFile($img) ->text('Bsth copyright', [ 'color' => '#5fcf98', 'opacity' => 0.1, 'withShadow' => false, 'hAlign' => 'center', 'vAlign' => 'center', 'fontSize' => 90, // 此时单位为像素,可根据图片宽度调整到铺满的尺寸 'fontPath' => APPPATH . 'Fonts/simhei.ttf' // 替换为你实际的字体文件路径 ]) ->save('upload/' . $files[$i]);
注意事项
- 优先使用绝对路径指定字体文件,避免相对路径导致的文件读取失败
- 确保服务器PHP的GD库已开启FreeType支持,否则无法渲染自定义TTF字体
内容的提问来源于stack exchange,提问作者Abrar Mansouri
相关产品推荐
相关产品推荐

