PHP – imagettftext не работает и установлен GD

Это долгие часы, что я все еще ищу ответ на эту проблему. Все решения, которые я нахожу, – это ловить имя шрифта, но я уверен, что это не моя проблема.

Похоже, что GD установлен

array(11) { ["GD Version"]=> string(27) "bundled (**2.0.34 compatible**)" ["FreeType Support"]=> bool(false) ["T1Lib Support"]=> bool(false) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPEG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(true) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) } 

Выше вы можете увидеть мою поддержку GD. Моя PHP-версия – 5.3, и я работаю в Linux.

Я пробовал несколько разных примеров кода с разных сайтов, и никто не работает. ImageString действительно работает для меня, но мне нужно заставить imagettftext работать.

Это последний код, который я пробовал сейчас,

 <?php ini_set('display_errors', 1); error_reporting(E_ALL); // Set the content-type header('Content-Type: image/png'); // Create the image $im = imagecreatetruecolor(400, 100) or die("Can't create image!"); // Create some colors $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white); // The text to draw $text = 'Testing'; // Replace path by your own font path $font = 'arial.ttf'; // Add some shadow to the text imagettftext($im, 20, 0, 11, 21, $grey, 'arial.ttf', $text); // Add the text imagettftext($im, 20, 0, 10, 20, $black, 'arial.ttf', $text); // Using imagepng() results in clearer text compared with imagejpeg() imagepng($im); imagedestroy($im); ?> 

Результат: http://www.7679679.com/app/test-ansi.php

Если бы такая же проблема, с установленным FreeType, решение было

  $font = "./Arial.ttf"; // <--- put ./ in front of filename 

Обратите внимание: у вас нет свободного типа:

 ["FreeType Support"]=> bool(false) 

Эта функция требует как библиотеки GD, так и библиотеки FreeType.

Перед использованием этой функции вам потребуется установить библиотеку Free Type.

попробуйте установить этот пакет: s freetype, freetype-devel

Если вы скомпилировали PHP, вы можете убедиться, что добавили разрешенный freetype во время компиляции:

 --with-freetype-dir=/usr/include/freetype2/ --with-freetype 

Или если вы используете что-то вроде YUM или APT-GET, должно быть очень просто установить эти библиотеки и быстро найти google go, чтобы вы начали.

Ну, у меня тоже проблемы

 $font='arial.tff'; 

Я думаю, вы должны предоставить абсолютный путь к шрифту $, например

 $font="c:/windows/fonts/arial.ttf"; 

Я предполагаю, что вы пользователь Windows. и удалить

 header('Content-Type:image/png'); 

получить реальную ошибку

Андрей прав, руководство php для состояний imagettftext FreeType требуется для использования imagettftext , imagettfbox и других. Большинство людей GD devel package автоматически установит FreeType:

Fedora / Redhat:

 yum install gd gd-devel php-gd 

Debian / Ubuntu:

 apt-get install php5-gd libgd2-xpm libgd2-xpm-dev 

Вероятно, эта ошибка была в ваших журналах:

 PHP Fatal error: Call to undefined function imageTTFText()