Проблемы с выводом текстового изображения с помощью PHP

Мне нужно напечатать некоторый текст на экране в виде изображения с PHP на странице, но он показывает только белый квадрат.

Вот код главной страницы:

    <?php
    SESSION_START();
    if ($_SESSION["log"]!=true){
    //die("<h1><center>Non sei loggato come amministratore</center></h1>");
    header('location:index.php'); }

   include('ase.php');
    echo ('
                <!DOCTYPE html>
                <html>
                <body>
                <a href="./logout.php">Logout</a>
                <img src="data:image/png;base64,' . base64_encode($stringdata) . '">
                </body></html>');
      ?>

А вот код страницы, которая должна выводить изображение:

 <?php 
    // Set the content-type
    header('Content-Type: image/png');

    // Create the image
    $im = imagecreatetruecolor(800, 2000);

    // Create some colors
    $white = imagecolorallocate($im, 255, 255, 255);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 800, 2000, $white);

    // The text to draw
    $text = "Read the text and the questions below. For each question mark 
    the letter next to the correct answer - A,B,C or D.";

    // Replace path by your own font path
    $font = 'arial.ttf';


    // Add the text
    imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

        ob_start();
        imagepng($im);
        $stringdata = ob_get_contents();
        ob_end_clean();
    ?>

(Извините за мой английский)


person alessionossa    schedule 26.03.2016    source источник
comment
Вместо того, чтобы (вероятно, то, что вы делаете) включать скрипт и возиться с буферизацией вывода, установите php-скрипт в качестве URL-адреса источника изображения, а затем выведите изображение в обычном режиме без буферизации вывода. Уничтожьте объект GD после imagepng с помощью imagedestroy($im);.   -  person Charlotte Dunois    schedule 26.03.2016
comment
если вы не хотите делать то, что предлагает Шарлотта Дюнуа (а вы должны это делать), просто удалите header('Content-Type: image/png');.   -  person Federkun    schedule 26.03.2016
comment
Спасибо @Federico, это работает!   -  person alessionossa    schedule 26.03.2016


Ответы (1)


я решил проблему удаления заголовка ( header('Content-Type: image/png'); ).

person alessionossa    schedule 06.07.2016