无效的字体文件名无法在PHP中使用.ttf文件

无效的字体文件名无法在PHP中使用.ttf文件,php,gd,Php,Gd,我正在尝试使用imagettftext在PHP中将文本添加到图像中。但是,它似乎不接受任何.ttf文件,并不断给出错误:“找不到/打开字体”和“无效字体文件名”。文件路径为localhost/fonts/arial.ttf 我尝试了相对路径、绝对路径,将/更改为\,尝试将./放在路径之前,但似乎没有任何效果。 我已经检查了GD版本及其2.1.0版本,FreeType链接是“带FreeType”的,不管这意味着什么 <?php $output = "pics/email.png";

我正在尝试使用imagettftext在PHP中将文本添加到图像中。但是,它似乎不接受任何.ttf文件,并不断给出错误:“找不到/打开字体”和“无效字体文件名”。文件路径为localhost/fonts/arial.ttf

我尝试了相对路径、绝对路径,将
/
更改为
\
,尝试将
./
放在路径之前,但似乎没有任何效果。 我已经检查了GD版本及其2.1.0版本,FreeType链接是“带FreeType”的,不管这意味着什么

<?php

    $output = "pics/email.png";

    $x = 720;
    $y = 480;
    $image = imagecreate($x, $y);

    //colors to use (rgb)

    $white = imagecolorallocate($image, 255, 255, 255);
    $black = imagecolorallocate($image, 0, 0, 0);

    $font = 'fonts/arial.ttf';

    $text1 = imagettftext($image, 40, 0, 20, 40, $black, $font, "Text Sample");


    imagejpeg($image, $output);

    var_dump(gd_info());



    ?>


如果有人能给出一个有效的答案,我将不胜感激。

已经解决了这个问题,感谢评论部分的人


我只需要使用完整文件路径(C://…/fonts/arial.ttf)

尝试使用字体的完整文件路径,而不是相对文件路径。localhost不是路径,它是URL。因此,是的,按照@anynber在文档中所说的:“根据PHP使用的GD库的版本,当fontfile不以前导/then开头时,将在文件名后附加.ttf,库将尝试沿着库定义的字体路径搜索该文件名。”因此,是的,始终使用绝对路径,或者,即使它在本地工作,您也可能在移植时遇到麻烦。很抱歉,您所说的完整路径是指C://…/fonts/arial.ttf吗?另请参见--yes使用完整的
C:/path/to/fonts/arial.ttf