我正在尝试使用imagettftext创建带文本的图像。它提示我:在C:\xampp\htdocs\recentpost.php的第32行上,警告:imagettftext():无效的字体文件名。以下是我用于添加文本的第32行代码:
imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!");
我从C:/Windows/Fonts文件夹中复制了字体,因此这是一个有效的字体。
我正在尝试使用imagettftext创建带文本的图像。它提示我:在C:\xampp\htdocs\recentpost.php的第32行上,警告:imagettftext():无效的字体文件名。以下是我用于添加文本的第32行代码:
imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!");
我从C:/Windows/Fonts文件夹中复制了字体,因此这是一个有效的字体。
尝试一些类似于这样的内容:
$font = dirname(__FILE__) . '/arial.ttf';
//OR
$font = dirname(__FILE__) . '/fonts/arial.ttf';
imagettftext($img, 12, 0, 20, 1, $black, $font, "News!");
你尝试过使用吗?
imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.TTF", "News!");
使用.TTF而不是.ttf,可以吗?
@Fab,你在Windows上可以同时使用\和/。
哦,天啊,我真是太蠢了...现在熬夜写php已经太晚了 :p 我一直试图进入一个不存在的文件夹。正确的代码应该是:
imagettftext($img, 12, 0, 20, 1, $black, "fonts/arial.ttf", "News!");
感谢大家尝试修复我的愚蠢错误 :p
尝试使用双斜杠:
imagettftext($img, 12, 0, 20, 1, $black, "..\\fonts\\arial.ttf", "News!");
如果您使用的是 Windows,我认为您应该使用 "..\fonts\arial.ttf"
作为路径
我尝试了上面的建议,但都没有对我起作用。
因此,我将添加我使用的方法,以防其他人遇到同样的问题。
我使用了
imagettftext($img, 12, 0, 20, 1, $black, getcwd()."\fonts\\arial.ttf", "News!");
getcwd()
用于获取当前工作目录。您可以在这里阅读更多信息。echo getcwd()."\fonts\\arial.ttf"
来获取完整目录并将所有反斜杠更改为正斜杠。它仍然可以正常工作。