如果在代码的帮助下仅显示图像,则代码工作正常
<?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).'">';