我已经用ImagePng()创建了一个图像。我不希望它将图像保存到文件系统,但要与base64编码内嵌图像在同一页面上输出,例如
print '<p><img src="data:image/png;base64,'.base64_encode(ImagePng($png)).'" alt="image 1" width="96" height="48"/></p>';
这不起作用。
这完全可以在单个PHP文件中完成吗?
提前致谢!
最佳答案
这里的技巧是使用输出缓冲来捕获imagepng()
的输出,该输出将输出发送到浏览器或文件。它不会将其返回存储在变量中(或以base64编码):
// Enable output buffering
ob_start();
imagepng($png);
// Capture the output and clear the output buffer
$imagedata = ob_get_clean();
print '<p><img src="data:image/png;base64,'.base64_encode($imagedata).'" alt="image 1" width="96" height="48"/></p>';
这是从the
imagepng()
docs.中的用户示例改编而来的