在网页上的某个位置显示来自php的png图像

时间:2014-06-08 17:26:22

标签: php php-gd

如果我在代码的帮助下仅显示图像,则代码可以正常工作。

 <?php
 // my code processing
  header("Content-type: image/png");
   imagepng($base_image);
   ?>

但是,如果我使用其他一些字段,如echo一些文字或我想在我的页面上放一些按钮。 我收到错误,代码:

    <?php
echo "hi";

?>


 <?php
 // my code processing
  header("Content-type: image/png");
   imagepng($base_image);
   ?>

它给了我错误:显示的页面包含一些错误。 有人可以在这方面帮助我。

2 个答案:

答案 0 :(得分:0)

此答案基于another SO answer.您的问题是您在将数据发送到浏览器后尝试发送标题信息,这是不可能的。即使这样,您也无法仅在数据页面上显示图像。您需要首先对图像数据进行base64编码。通过这种方式,您可以构建一个完整的HTML页面并将此图像放在其中的任何位置,并使用CSS定位它。

// Enable output buffering
ob_start();
imagepng($base_image);
// Capture the output
$imagedata = ob_get_contents();
// Clear the output buffer
ob_end_clean();

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

答案 1 :(得分:0)

Content-Type标头之前的任何输出都会破坏您的代码。浏览器不知道您尝试将其提供给图像,因为在图像数据出现时它已经默认为text/html。如果您想在页面中的给定点上显示图像,则需要将其作为单独的对象提供。最简单的方法是将其包装在<img>标记中,例如<img src="myimage_generator.php" />