Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript存储HTML5画布的状态_Javascript_Html_Canvas_Store_Restore - Fatal编程技术网

使用Javascript存储HTML5画布的状态

使用Javascript存储HTML5画布的状态,javascript,html,canvas,store,restore,Javascript,Html,Canvas,Store,Restore,我正在试着编辑 我想存储画布的状态, 因此,如果一个新访客进来,他将看到最后绘制的东西的状态。 当前,画布将为新访问者清除所有内容 我必须使用union draw来存储画布的状态吗 像这样的事情有可能吗?如果是,如何进行 var states = []; function saveState(ctx){ var c = document.createElement('canvas'); c.width = ctx.canvas.width; c.height = ctx.canva

我正在试着编辑

我想存储画布的状态, 因此,如果一个新访客进来,他将看到最后绘制的东西的状态。 当前,画布将为新访问者清除所有内容

我必须使用union draw来存储画布的状态吗

像这样的事情有可能吗?如果是,如何进行

var states = [];
function saveState(ctx){
  var c = document.createElement('canvas');
  c.width  = ctx.canvas.width;
  c.height = ctx.canvas.height;
  c.getContext('2d').drawImage(ctx.canvas,0,0);
  states.push(c);
  return c;
}

function restoreState(ctx,idx){
  var off = idx==null ? states.pop() : states[idx];
  ctx.drawImage(off,0,0);
}

当新访客进入时,在存储笔移动和重新创建方面有什么进展吗?@Miszy不,我不是说将画布作为图像保存到harddrive@jing3142重新创建笔的移动也会很有趣,但我的意思是新访问者应该看到画布上已经绘制的内容。你看过了吗?它在画布上提供了一个API,允许您导入和导出JSON或SVG。我不熟悉union draw,所以我不知道它是否兼容。当新访客进入时,在存储笔移动和重新创建方面有什么进展吗?@Miszy没有,我不是说将画布作为图像保存到harddrive@jing3142重新创作笔法也会很有趣,但我的意思是,新访客应该看到画布上已经画出的东西。你看过了吗?它在画布上提供了一个API,允许您导入和导出JSON或SVG。我不熟悉union draw,所以不知道它是否兼容。