PHP GD: изображение невозможно отобразить, поскольку оно содержит ошибки

Я пытаюсь сделать Captcha через PHP GD. Но, к сожалению, я столкнулся с проблемой! PHP скажите мне:

The image “http://127.0.0.1/par.php” cannot be displayed because it contains errors. 

Мой код – это

  <?php header ('Content-Type: image/png'); $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); $red = imagecolorallocate($im, 255, 0, 0); for ($i=0;i<=120;$i=$i+1){ for ($j=0;$j<=20;$j=$j+1){ imagesetpixel($im, $i,$j,$red); } } imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color); imagepng($im); imagedestroy($im); ?> 

 $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); 

Сначала вы спрячете реальную ошибку и ПОПРОБУЙТЕ отобразить что-то …

которые вы не можете отобразить, потому что вы не ищете его,

и выставлять изображение независимо от того, действительно ли оно создано.

Затем вы переходите к stackoverflow и надеетесь, что кто-то может угадать ошибку, которую вы могли бы просто подавить с помощью оператора @ .

Убедитесь, что перед <?php нет ничего, и если у вас есть, удалите ?> В конце.

Чтобы убедиться, что у вас установлен GD, попробуйте это в новом php-файле:

 <?php if (extension_loaded('gd') && function_exists('gd_info')) { echo "PHP GD library is installed on your web server"; } else { echo "PHP GD library is NOT installed on your web server"; } 

проблема в том, что для

измените его для:

 for ($i=0; $i < 120 ; $i++) { for ($j=0; $j < 20 ; $j++) { imagesetpixel($im, $i,$j,$red); } } 

РЕДАКТИРОВАТЬ

это код, который я тестировал:

 header ('Content-Type: image/png'); $im = imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 0, 14, 91); $red = imagecolorallocate($im, 255, 0, 0); for ($i=0; $i < 120 ; $i++) { for ($j=0; $j < 20 ; $j++) { imagesetpixel ($im ,$i,$j ,$red); } } imagestring($im, 1, 5, 5,'A Simple Text String', $text_color); imagepng($im); imagedestroy($im); 

результат:

введите описание изображения здесь

Эта проблема возникает только в FireFox, а не в Chrome. Вы должны идти вперед, если это не вызывает других проблем. Не следует удалять заголовок (), даже если отображается ошибка.

Скорее всего, ваш php выводит некоторые предупреждения или уведомления, которые испортили ваши данные изображения. Попытайтесь разбить свой код перед вызовом функции imagepng (), чтобы узнать, генерируются ли какие-либо ошибки или предупреждения, или попытайтесь остановить все предупреждения и уведомления в вашем php.ini или ini_set.