我已经用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.中的用户示例改编而来的

10-07 17:56