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


Display png image from php on a certain position on a webpage

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

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

It give me error:显示的页面包含一些错误。在这方面谁能帮我一下?

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

这个答案是基于另一个SO的答案。你的问题是,你试图发送标题信息后,你已经发送数据到浏览器,这是不可能的。即便如此,你也不能只在页面上显示图片的数据。首先需要对图像数据进行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).'">';