5

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

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

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

4

6 回答 6

19

尝试类似:

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

希望能帮助到你

于 2012-06-13T04:17:20.610 回答
0

如果你在 Windows 上,你应该使用"..\fonts\arial.ttf"我认为的路径

于 2012-06-13T04:10:38.050 回答
0

您是否尝试过使用

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

反而?(.TTF 而不是 .ttf)

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

于 2012-06-13T04:18:36.937 回答
0

哦,哇,愚蠢的我......我已经太晚了,无法使用 php :p 我试图进入一个不存在的文件夹。真正的代码应该是

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

谢谢大家试图纠正我的愚蠢错误:p

于 2012-06-13T04:24:35.977 回答
0

尝试使用双斜杠:

imagettftext($img, 12, 0, 20, 1, $black, "..\\fonts\\arial.ttf", "News!");
于 2015-05-16T17:44:25.397 回答
0

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

所以,我会添加对我有用的东西,以防其他人在我的鞋子里。

我用了

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

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

getcwd()用于获取当前工作目录。你可以在这里阅读更多。

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

于 2020-07-06T08:05:07.613 回答