我有一个功能,可以将一组图像绘制到画布上,然后将其保存。
然后在命令行中运行:
canvas.save();
canvas.clearRect(0,0,415,415);
canvas.restore();
我希望它能够恢复它,但它什么都不做。任何帮助,我在谷歌上找不到关于在这个系列中运行的任何内容,而且我在过去曾经遇到过这个问题。
答案 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
的作用。它会保存画布的状态,受rotate
,translate
,scale
等影响。它不会保存画布的任何实际内容。如果要保存画布上的实际内容,请尝试将其存储在隐藏的画布中。假设您已将隐藏的画布添加到html并获取其上下文对象(canvas2
),则以下内容应保存它:
canvas2.drawImage(canvas, 0, 0)
然后恢复它:
canvas.drawImage(canvas2, 0, 0)