【问题标题】:PHP imagettftext invalid font filenamePHP imagettftext 字体文件名无效
【发布时间】:2012-06-16 00:12:24
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否尝试过使用完整路径而不是相对路径?
  • 是的,我遇到了同样的错误。
  • 看看manual for imagettftext。在 $fontfile 参数的解释下,它解释说,在某些情况下,如果文件名不以斜杠开头,则将“.ttf”附加到该路径。这可能会导致问题吗?

标签: php gd truetype


【解决方案1】:

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

【讨论】:

  • 刚试了下,还是不行。我不明白发生了什么。我有 xampp,我相信它是最新的。我已经尝试了我能想到的所有东西,以及我在网上找到的每一个技巧,但我一生都无法让它发挥作用。虽然现在是深夜,并且已经为此工作了一段时间。
【解决方案2】:

尝试类似:

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

希望对你有帮助

【讨论】:

  • 这意味着字体必须与文件位于同一文件夹中,对吗?我以前没有使用过 dirname(FILE) 所以我不知道它是如何工作的
  • dirname 实际上返回父目录的路径,所以你可以把你的字体放在字体文件夹中并使用上面提到的 dirname,但是字体文件夹应该在你的项目文件夹中
【解决方案3】:

您是否尝试过使用

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

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

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

【讨论】:

  • 另外,您是否尝试过包含根文件夹中的字体?
【解决方案4】:

哦,哇,愚蠢的我......我已经为时已晚了 php :p 我试图去一个不存在的文件夹。真正的代码应该是

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

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

【讨论】:

    【解决方案5】:

    尝试使用双斜线:

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

    【讨论】:

      【解决方案6】:

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

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

      我用过

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

      请注意,'arial.ttf'前多余的反斜杠是为了对原字体文件目录中的反斜杠进行转义。

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

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

      【讨论】:

        猜你喜欢
        • 2013-09-11
        • 2022-11-13
        • 2023-03-07
        • 2011-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多