PHP base64 编码图像创建真彩色


php base64 encode imagecreatetruecolor

我有一个php脚本,可以生成图像,然后将图像输出为png。

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

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

我已经尝试过很多次使用其他堆栈溢出帖子/答案等来让自己工作,但我对这项技术的了解还不够多,无法让它工作。

有人可以帮我解决这个问题吗?

提前感谢,

克里斯

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

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

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

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