You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中imagettftext()报错:无效字体文件名的解决咨询

Laravel 9中imagettftext字体文件调用问题解决

字体文件存放位置

  • 推荐存放在public/fonts目录:这是Laravel的Web可访问目录,便于统一管理静态资源,且PHP进程默认有读取权限。
  • 也可选择storage/app/fonts目录:适合不想对外暴露的字体文件,需确保PHP进程对该目录有读取权限(可通过chmod 755 storage/app/fonts设置权限)。

正确调用方式

直接使用字体文件名会导致PHP在当前执行目录查找文件,必须传入绝对路径才能正确定位。Laravel提供了两个辅助函数来快速获取目录绝对路径:

情况1:字体存放在public/fonts

public function singleChar($text)
{
    // 获取字体文件的绝对路径
    $font = public_path('fonts/SansBold.ttf');

    // ... 其他代码

    imagettftext($img, $size, $angle + 5, $textX + 5, $textY + 10, $shadowgbColor, $font, $text);

    // ... 其他代码
}

情况2:字体存放在storage/app/fonts

public function singleChar($text)
{
    // 获取字体文件的绝对路径
    $font = storage_path('app/fonts/SansBold.ttf');

    // ... 其他代码

    imagettftext($img, $size, $angle + 5, $textX + 5, $textY + 10, $shadowgbColor, $font, $text);

    // ... 其他代码
}

额外注意事项

  • 确认字体文件真实存在,文件名大小写与代码中一致(Linux服务器区分大小写)。
  • 检查字体文件权限,确保PHP进程可读取(一般设置为644即可)。

内容的提问来源于stack exchange,提问作者Pouya Vaghefi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:45:51