生成图像然后发送它而不先将其保存为文件?

时间:2011-09-12 21:28:09

标签: php image file base64

如果我直接在php脚本中生成图像以发送回JS,是否必须将此图像保存到文件系统?

我使用imagecreate()创建一个图像然后imagecopyresized()然后想要将结果发送为包含在json中的base64(稍后我将需要一个字符串数组而不是一个)。

除了来自fread()的字节之外,我找不到base64_encode()会占用的任何内容。我发现必须保存到文件系统浪费,并认为必须有更好的方法!

由于

2 个答案:

答案 0 :(得分:4)

您根本不必保存文件。只需使用output buffering

ob_start();
imagepng($im);
$pngData = ob_get_contents();
ob_end_clean();
echo base64_encode($pngData);

答案 1 :(得分:0)

只想添加;有一个函数ob_get_clean()同时执行ob_get_contents()ob_end_clean()