我正在尝试将画布保存为图像,以便将其作为标记放在网站上的其他位置。 我见过这样的方法:
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var strDataURI = canvas.toDataURL("image/png;base64");
document.write('<img src="'+strDataURI+'"/>');
但我不确定如何实施它。我也希望将图像的副本保存为服务器上的实际文件,但我不知道从哪里开始。
当我实现上面的代码时,我把它放在我的canvas脚本的底部,如:
var finish = document.getElementID('finish');
finish.onclick = function() {
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var strDataURI = canvas.toDataURL("image/png;base64");
};
但我不知道如何实际参考图像。 我只需要一点帮助就可以了。
答案 0 :(得分:0)
对于前端,这里是一个完整的工作示例,仅显示红色背景。 http://jsfiddle.net/gramhwkg/
// create a canvas
// If the canvas is already a dom element
//var canvas = document.getElementById("canvas");
// otherwise you'd rather do
var canvas = document.createElement('canvas');
// Then set a width/height grab its context.
canvas.width = 900;
canvas.height = 400;
var ctx = canvas.getContext("2d");
// ... And do plenty of nice stuff with it.
// I'll just draw it Red.
ctx.fillStyle = "#FF0000";
ctx.fillRect(0,0,900,400);
// When you want it to appear elsewhere.
var data = canvas.toDataURL();
var picture = document.getElementById("my-picture");
picture.innerHTML = '<img src="' + data + '"/>' ;
后端部分并不难。只需向php发送相同的图像数据变量并以这种方式处理它:
$canvas = base64_decode(str_replace('data:image/png;base64,', '' , $value['picture']));
file_put_contents('my_custom_path/my_custom_filename.png', $canvas);
希望这有帮助!