如果我在代码的帮助下仅显示图像,则代码可以正常工作。
<?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);
?>
它给了我错误:显示的页面包含一些错误。 有人可以在这方面帮助我。
答案 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" />