2012-06-13 58 views
3

我想通過使用imagettftext創建一個帶有文本的圖像。它告訴我警告:imagettftext():無效的字體文件名在C:\ XAMPP \ htdocs中\ recentpost.php上線32以下是在線我使用添加文本PHP imagettftext無效字體文件名

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

我32碼將字體從C:/ Windows/Fonts文件夾中複製出來,因此它是有效的字體。

+0

有您使用的完整路徑嘗試的,而不是相對路徑? – Vulcan

+0

是的,我給了我同樣的錯誤。 – legobear154

+0

查看[imagettftext手冊](http://php.net/manual/en/function.imagettftext.php)。在$ fontfile參數的解釋下,它解釋了在某些情況下,如果文件名不以斜槓開頭,那麼「.ttf」會附加到該路徑。可能會導致問題? – Vulcan

回答

8

試着這麼做:

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

希望它可以幫助

+0

這意味着字體必須與文件所在的文件夾正確嗎?我之前沒有使用dirname(__ FILE__),所以我不確定它是如何工作的 – legobear154

+0

dirname實際上會返回父目錄的路徑,因此您可以將字體放在字體文件夾中並使用上面提到的dirname,但字體文件夾應該是在你的項目文件夾裏面 –

+0

好的,謝謝你的解釋!我可能會開始使用它! – legobear154

0

如果您使用的是Windows,你應該使用"..\fonts\arial.ttf"作爲路徑,我認爲

+0

剛剛嘗試過,它也不起作用。我不知道發生了什麼事。我有xpppp,我相信它是最新的。我嘗試過所有我能想到的事情,以及我在網上找到的每一個技巧,只是不能爲我的生活得到這個工作。雖然是深夜,並且已經有一段時間了。 – legobear154

0

您是否嘗試過使用

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

取而代之? (.TTF替代.ttf)

和@Fab,您可以在窗口上使用\和/。

+0

另外,你有沒有嘗試包括根文件夾中的字體? – Sebr

0

哦,哇,愚蠢的我......它太晚了,我要在PHP上工作:P我試圖去到一個不存在的文件夾。真正的代碼應該是

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

謝謝大家對試圖解決我的愚蠢的錯誤:對

0

嘗試使用雙斜線:

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