2013-06-09 2 views
0

Я использую следующий код в файле test.php для создания изображения из текста.imagettftext не отображает изображение

<?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.

Что я могу делать неправильно?

+1

Что вы получаете, когда доступ к test.php напрямую? Я предполагаю сообщение об ошибке. – Maerlyn

+0

@Maerlyn. Я ​​получаю тот же результат, что и значок test2.php, * по умолчанию. * – Sid

+0

Прокомментируйте вызов 'header', чтобы вы увидели сообщение об ошибке. – Maerlyn

ответ

0

Найден ответ. Как предложил Данак, я сохранил файл как UTF-8 Without BOM с помощью блокнота ++. Затем просто начните правильно отображать изображение.

1

Это связано с отсутствием шрифта. Пожалуйста, скопируйте файл шрифта в каталоге test.php и изменения коды:

$font = '/home/axxxxxxx/public_html/font.ttf'; 

в

$font = 'font.ttf'; 

Надеется, что это помогает.

+0

OP явно указал, что путь к файлу шрифта верен. – Maerlyn

+0

Yup. правильный путь к файлу шрифта – Sid

1

Моя проблема была неправильным смещением. Изображение не показывало ничего, никакого текста, ошибок в исходном коде, просто пустого файла. Пути были правильными. Я думал, что была ошибка в шрифте 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); 
Смежные вопросы