PHP imagettftext无效的字体文件名
我正在尝试使用imagettftext创建带有文本的图像。它告诉我警告:imagettftext():第32行C:\xampp\htdocs\recentpost.php中的字体文件名无效。下面是我用来添加文本的第32行代码PHP imagettftext无效的字体文件名,php,gd,truetype,Php,Gd,Truetype,我正在尝试使用imagettftext创建带有文本的图像。它告诉我警告:imagettftext():第32行C:\xampp\htdocs\recentpost.php中的字体文件名无效。下面是我用来添加文本的第32行代码 imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!"); 我从C:/Windows/Fonts文件夹中复制了字体,因此它是一种有效的字体。如果您在Windows上,您应该使用。\Fon
imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!");
我从C:/Windows/Fonts文件夹中复制了字体,因此它是一种有效的字体。如果您在Windows上,您应该使用
。\Fonts\arial.ttf“
作为路径,我认为可以尝试以下方法:
$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!");
我试着使用上面的建议,但没有一个对我有效 所以,我将添加对我有用的东西,以防有人站在我的立场上 我曾经
imagettftext($img, 12, 0, 20, 1, $black, getcwd()."\fonts\\arial.ttf", "News!");
请注意,“arial.ttf”之前的额外反斜杠用于转义原始字体文件目录中的反斜杠
getcwd()
用于获取当前工作目录。你可以读更多
您可以使用
echo getcwd().“\font\\arial.ttf”
获取完整目录,并根据需要将所有反斜杠更改为正斜杠。它仍然可以正常工作您尝试过使用完整路径而不是相对路径吗?是的,我尝试过,但它给了我相同的错误。请查看。在$fontfile参数的解释下,它解释了在某些情况下,如果文件名不是以斜杠开头,则会将“.ttf”附加到该路径。这可能会导致问题吗?只是尝试了一下,但也不起作用。我不明白发生了什么事。我有xampp,我相信它是最新的。我已经尝试了我能想到的一切,以及我在网上发现的每一个窍门,但我一辈子都无法让它发挥作用。虽然现在已经很晚了,并且已经为此工作了一段时间。这意味着字体必须与文件位于同一文件夹中,对吗?我以前没有使用过dirname(文件),所以我不确定它在alldirname中是如何工作的。dirname实际上返回父目录的路径,因此您可以将字体放在fonts文件夹中并使用上面提到的dirname,但是fonts文件夹应该在您的项目文件夹中。另外,您是否尝试过从根文件夹中包含字体?