php base64编码imagecreatetruecolor

时间:2013-01-29 16:40:34

标签: php base64 encode

我有一个生成图像的PHP脚本,然后将图像输出为png。

$img = imagecreatetruecolor($graphWidth,$graphHeight);
...
*drawing routines*
...
header("Content-type: image/png");
imagepng($img);

我现在需要的是让php脚本对base64编码图像数据并输出该字符串(因此我最终可以将该编码数据传递给java脚本,该脚本将此图像解码并添加到生成的pdf中)。

我已经多次尝试使用其他stackoverflow帖子/答案等让自己工作了。但是我对这项技术的了解不够充分。

有人可以帮我这个吗?

提前致谢,

克里斯

1 个答案:

答案 0 :(得分:4)

这不起作用的原因是因为$img中的图像是资源,而不是实际的PNG图像。当您致电imagepng()时,它会输出图片。

我要做的是创建一个输出缓冲区,base-64对它进行编码。

ob_start();
imagepng($img);
$buffer = ob_get_clean();
ob_end_clean();
echo base64_encode($buffer);

不要忘记更改Content-Type标题,因为这不再是image/png