清除后HTML5恢复画布

时间:2011-11-15 02:25:04

标签: html5 save restore html5-canvas

我有一个功能,可以将一组图像绘制到画布上,然后将其保存。

然后在命令行中运行:

canvas.save();
canvas.clearRect(0,0,415,415);
canvas.restore();

我希望它能够恢复它,但它什么都不做。任何帮助,我在谷歌上找不到关于在这个系列中运行的任何内容,而且我在过去曾经遇到过这个问题。

2 个答案:

答案 0 :(得分:13)

您可以使用getImageData和putImageData来保存和恢复画布内容。

tmp = context.getImageData(0,0,415,415);
context.clearRect(0,0,415,415);
context.putImageData(tmp,0,0);

答案 1 :(得分:7)

你误解了save的作用。它会保存画布的状态,受rotatetranslatescale等影响。它不会保存画布的任何实际内容。如果要保存画布上的实际内容,请尝试将其存储在隐藏的画布中。假设您已将隐藏的画布添加到html并获取其上下文对象(canvas2),则以下内容应保存它:

canvas2.drawImage(canvas, 0, 0)

然后恢复它:

canvas.drawImage(canvas2, 0, 0)