2013-03-03 3 views
0

Я использую Joomla 1.5. У меня есть скрипт для создания изображения с текстом над ней, но она не работает для меня:Joomla 1.5. Текст поверх изображения не работает

<?php 
// 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 = "ARIAL.TFF"; 

// 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); 
?> 

Я не понимаю, почему это не работает. Я нашел много примеров в google, я использовал It, но всегда один и тот же. error Эта ошибка на английском означает: Image "http://juokoera.lt/a.php" can't be shown, because It have problems (errors).

Я нашел в Google, это может быть ошибка моего хостинга, я изменил его, но та же проблема. Помогите мне, пожалуйста, если сможете. Большое спасибо.

ОБНОВЛЕНО: Я получил ту же ошибку, когда, код выглядит следующим образом:

dasfasdf 
dfas 

<?php 
header('Content-Type: image/png'); 
$im = imagecreatetruecolor(400, 30); 
$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); 
$text = 'Testing...'; 
$font = "ARIAL.TTF"; 
imagettftext($im, 20, 0, 10, 20, $black, $font, $text); 
imagepng($im); 
imagedestroy($im); ?> 

Как я могу использовать дополнительный текст в том же PHP?

+0

Я предполагаю, что у вас нет «ARIAL.TFF» доступны. Убедитесь, что он существует. После комментирования этой строки, ваш код создает изображение без какого-либо текста, конечно. – varnie

+0

Кроме того, распространенная ошибка заключается в том, чтобы иметь любой выход перед кодом. То есть даже новая строка или символ пробела перед генерированием PHP кода PHP приведет к этой ошибке. – marekful

+0

@varnie Отсутствующая ссылка файла шрифта не должна вызывать эту ошибку, просто оставьте изображение пустым без текста. – marekful

ответ

0

Я думаю, ваша проблема здесь:

$font = "ARIAL.TFF"; 

на самом деле, на сервере файл с именем «ARIAL.TFF» не существует, расширение шрифта вы ищете TTF, а не ПТФ, и в самом деле «arial.ttf» на сервере существует, и я просто скачал его, верно, что линия:

$font = "ARIAL.TTF"; 

После этого, вы должны быть в состоянии написать текст на изображении

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

UPDATE

После обновления вопроса, я заметил, что заголовок отправляются после распечатывания текста.

Ничего не нужно печатать перед функцией header(), чтобы правильные отправки заголовков.

В PHP manual>header() это первая вещь, которая объясняется:

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

+0

OMG, глупая ошибка ... Всегда я хоть что это TFF не TTF ... Большое спасибо, что решил мою проблему. – 2013-03-03 11:39:21

+0

Добро пожаловать! – BackSlash

+0

Я не понимаю, почему мой код не работает, когда я использую тот же код. Просто добавьте текст перед этим? – 2013-03-03 12:20:01

Смежные вопросы