从PHP包含文件输出PNG图像

时间:2014-02-09 15:17:30

标签: php image

我有一个名为sign.php的包含文件,其中包含一些代码 -

header('Content-type: image/png');
.....
imagepng($image_file);
.....

我要显示此图片的文件 - index.php

......
<what comes here?> include('../sign.php');
.....

我该如何展示它?直接回应它并不起作用!

感谢。

更多代码:

sign.php

    .....
   {
    imagettftext($im, 22, 0, 240, 43 , $text_color, $font, $text_god);
    imagettftext($im, 22, 0, 241, 44 , $text_color, $font, $text_god);
}
imagettftext($im, 22, 0, 60, 42 , $text_color, $fontname, $text_username);
     imagettftext($im, 16, 0, 230, 72 , $text_color, $font, $text_kills);
imagettftext($im, 16, 0, 230, 102 , $text_color, $font, $text_deaths);
imagettftext($im, 16, 0, 230, 132 , $text_color, $font, $text_rwon);

imagettftext($im, 16, 0, 365, 72 , $text_color, $font, $text_alevel);
imagettftext($im, 16, 0, 365, 102, $text_color, $font, $text_dlevel);
imagettftext($im, 16, 0, 365, 132 , $text_color, $font, $text_rlost);
imagettftext($im, 16, 0, 365, 162 , $text_color, $font, $text_money);   // Prints the money in the picture. 

imagecopymerge($im, $skinImg, 505, 56,0,0,55,99,100);

header('Content-Type: image/png');

imagepng($im); 

    imagedestroy($im); 

的index.php

    .......
    <?php echo '<img src="../signature/sign.php" />'; ?>
    .......

仍然无法运作!

编辑:

的index.php

            include('../signature/sign.php');

            echo '<img src="data:image/png;base64,' + base64_encode($stringdata) + '">';

sign.php

http://pastebin.com/uz1U3V4R

3 个答案:

答案 0 :(得分:2)

这是因为imagepng直接将图像内容输出到浏览器。 您应该将图像的内容保存到sign.php

中的变量中
... 
imagecopymerge($im, $skinImg, 505, 56,0,0,55,99,100);  

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

imagedestroy($im);   
...

然后将其显示在index.php中,如下所示:

<?php
    include('sign.php');
    echo '<img src="data:image/png;base64,' . base64_encode($stringdata) . '">';
?>

答案 1 :(得分:0)

<img src='< ?php echo 'data:image/png;base64,' . base64_encode(file_get_contents('img.png')) ; ?> '>


<img src='<?php include("img.png"); ?>

这应该适合你。

答案 2 :(得分:0)

根据你说你试过<img src='sign.php'>并且它不起作用,我想设置标题有问题,考虑一下

  

发送标题之前没有输出

必须在进行任何输出之前调用发送/修改HTTP标头的函数。

修改HTTP标头的一些功能是:

输出可以是:

  • 非故意:
  • 故意:
    • printecho和其他产生输出的函数(如var_dump
    • <html>代码之前的原始<?php区域。