canvas如何保存状态做撤销功能,save()方法似乎没什么用处

需要做一个图片的涂鸦功能,然后需要撤销功能,save()方法似乎没什么用处,查了查资料说它只保存状态,恢复不了画布内容。。
请问如何操作能保存操作步骤,来撤销呢

阅读 3.7k
2 个回答

需要保存内容,需要你自己先保存起来
save不是用来保存内容的,是用来保存上下文信息的,如颜色,填充等

save()保存的只是CanvasRenderingContext2D对象的状态以及对象的所有属性,并不包括这个对象上绘制的图形.

给个链接自己看吧 https://www.w3cplus.com/canva...

PS: 你的save 和 restore代码都不贴出来,怎么给你看问题

补充:

如果你需要实现ctrl + z , ctrl + y 的功能,使用save/restore是无法完成的。
你可以自己建立一个stack,存储你的操作。 如果需要撤销,stack pop一下,然后
rerun一遍。 为了性能考虑,你可以rerun的时候base image可以不是初始状态,你可以
自定义几个base image

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题