1

我在 HTML5 画布中有一张取自网络摄像头直播的图像。当我将帧作为快照并将其保存在画布中时,我会这样做

var myImage = canvas.toDataURL("image/png");
dom.write('<form method="post" action="upload.php"><input type="myImage" value="'+myImage+'" /><input type="submit" value="Submit" /></form>')

在upload.php中我这样做

header("Content-type: image/png");
$img= $_GET["myImage"];
echo '<img src="data:image/gif;base64,'.$img.'" />';

这样做我在页面加载和提交表单时得到一个弹出窗口,它给了我

data:image/png;base64,"VERY HUGE STRING"

我想把它作为一个图像。请帮忙

4

2 回答 2

2

您的调用header建议您希望输出实际的 PNG 图像作为对请求的响应。但是,您随后会写出一个 HTML 标记,该标记在 PNG 文件中无效。

如果你想写出PNG图像本身,假设$img包含一个有效的PNG格式图像,你可以使用以下base64_decode函数解码base64:

echo base64_decode($img);

如果您想在 HTML 页面上显示图像,请将您的header调用更改为 read Content-Type: text/html

于 2013-05-16T19:33:36.187 回答
2

canvas.toDataURL() 已经包含该data:image/***;base64,部分,因此请将其从输出中删除。

于 2013-05-16T19:34:21.237 回答