我有一个HTML页面。在此页面上,我想显示动态创建的PNG图像,而不先将其保存到文件中。
当我只是尝试在页面中创建图像时,我当然会收到一条错误,指出已经发送的标题。
示例代码:
<!doctype html>
<html>
<head>
<title>A Test Page</title>
</head>
<body>
<h1>An Image</h1>
<?php
$im = imagecreatetruecolor(100, 100);
$white = ImageColorAllocate ($im, 255, 255, 255);
$black = ImageColorAllocate ($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 50, 50, $white);
imagefilledrectangle($im, 0, 50, 50, 100, $black);
imagefilledrectangle($im, 50, 0, 100, 50, $black);
imagefilledrectangle($im, 50, 50, 100, 100, $white);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
</body>
</html>
答案 0 :(得分:0)
您可以做的是在变量中缓冲图像,然后将img编码为base64:
ob_start();
imagepng($im);
$img_content = ob_get_contents();
ob_end_clean();
$dataUri = "data:image/png;base64," . base64_encode($img_content);
echo '<img src="' . $dataUri . '">';