PHP imagettftext无效的字体文件名

时间:2012-06-13 04:05:16

标签: php gd true-type-fonts

我正在尝试使用imagettftext创建包含文本的图像。它告诉我警告:imagettftext():第32行的C:\ xampp \ htdocs \ recentpost.php中的字体文件名无效。这是我用来添加文本的第32行的代码

imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!");

我将字体从C:/ Windows / Fonts文件夹中复制出来,因此它是有效的字体。

6 个答案:

答案 0 :(得分:12)

尝试类似:

$font = dirname(__FILE__) . '/arial.ttf';
//OR
$font = dirname(__FILE__) . '/fonts/arial.ttf';    
imagettftext($img, 12, 0, 20, 1, $black, $font, "News!");

希望有所帮助

答案 1 :(得分:0)

如果您使用的是Windows,则应使用"..\fonts\arial.ttf"作为我认为的路径

答案 2 :(得分:0)

您是否尝试过使用

imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.TTF", "News!");

代替? (.TTF代替.ttf)

和@Fab,你可以在Windows上同时使用\和/。

答案 3 :(得分:0)

哇,哇,愚蠢的我......对我来说为时已晚,我正在努力开发php:p我试图找到一个不存在的文件夹。真正的代码应该是

imagettftext($img, 12, 0, 20, 1, $black, "fonts/arial.ttf", "News!");

感谢大家试图解决我的愚蠢错误:p

答案 4 :(得分:0)

尝试使用双斜杠:

imagettftext($img, 12, 0, 20, 1, $black, "..\\fonts\\arial.ttf", "News!");

答案 5 :(得分:0)

我尝试使用以上建议,但没有一个对我有用。

因此,如果有其他人穿着我的鞋子,我将添加对我有用的东西。

我用过

imagettftext($img, 12, 0, 20, 1, $black, getcwd()."\fonts\\arial.ttf", "News!");

请注意,'arial.ttf'之前的额外反斜杠是在原始字体文件目录中转义反斜杠。

getcwd()用于获取当前工作目录。您可以阅读更多here

您可以使用echo getcwd()."\fonts\\arial.ttf"获取完整目录,并根据需要将所有反斜杠更改为正斜杠。仍然可以正常工作