imagettftext не отображает изображение
Я использую следующий код в test.php
файл для генерации изображения из текста.
<?php
error_reporting(E_ALL);
// Set the content-type
header('Content-Type: image/png');
// Create the image
$im = imagecreatetruecolor(400, 30);
// 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 = '/home/axxxxxxx/public_html/font.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Затем я пытаюсь отобразить изображение в test2.php
следующее
<?php
echo "<img src=\"/test.php\" />";
?>
Все, что я получаю, это значок по умолчанию с битым изображением Путь к файлу шрифта и URL-адресу изображения верны. Все права доступа к файлу на 777. Серверы имеют библиотеку GD.
Что я могу делать не так?
3 ответа
Нашел ответ. Как предложил Данак, я сохранил файл как UTF-8 Without BOM
используя блокнот ++. Затем просто начал правильно отображать изображение.
Это вызвано отсутствием шрифта. Пожалуйста, скопируйте файл шрифта в каталог test.php и измените код:
$font = '/home/axxxxxxx/public_html/font.ttf';
в
$font = 'font.ttf';
Надеюсь, поможет.
Моя проблема была неправильным смещением. На изображении не было ничего, ни текста, ни ошибок в исходном коде, просто пустой файл. Пути были правильными. Я думал, что была ошибка в шрифте ttf, но оказалось, что это было просто неправильное позиционирование.
Вот что помогло мне увидеть немного текста:
imagettftext($im, 20, 0, 20, 20, $fg, $font, $text);
Это показывает немного текста в правом верхнем углу.
Полный рабочий код:
putenv('GDFONTPATH=' . dirname(__FILE__));
$font = 'arial'; // located next to the script
imagettftext($im, 20, 0, 20, 20, $fg, $font, $text);