javascript – 从localStorage保存和加载画布数据

前端之家收集整理的这篇文章主要介绍了javascript – 从localStorage保存和加载画布数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要保存画布中的所有图纸,以便以后能够返回.

我成功获取和放置数据,但我无法保存对象并正确返回.

这是我的代码

  1. var imgData = a.getImageData(0,500,200);
  2. localStorage.setItem("test",JSON.stringify(imgData))
  3. console.log(imgData)
  4. console.log(JSON.parse(localStorage.getItem("test")))
  5. b.putImageData(imgData,0);
最佳答案
您可以使用canvas.toDataURL()方法,该方法将画布编码为Base64.

然后,您可以使用源作为数据URL创建图像,然后将该图像绘制到画布.

Here is the working sample.

  1. var canvas = document.getElementById('tutorial');
  2. var ctx = canvas.getContext('2d');
  3. var ctx = canvas.getContext("2d");
  4. ctx.fillStyle = "rgb(200,0)";
  5. ctx.fillRect (10,10,55,50);
  6. var url = canvas.toDataURL();
  7. localStorage.setItem('url',url);
  8. var canvas2 = document.getElementById('tutorial2');
  9. var ctx2 = canvas2.getContext("2d");
  10. var toDrawUrl = localStorage.getItem('url');
  11. drawDataURIOnCanvas(toDrawUrl,ctx2);
  12. ctx2.fillStyle = "rgb(200,200,0)";
  13. ctx2.fillRect (20,20,50);
  14. function drawDataURIOnCanvas(strDataURI,context) {
  15. "use strict";
  16. var img = new window.Image();
  17. img.addEventListener("load",function () {
  18. context.drawImage(img,0);
  19. });
  20. img.setAttribute("src",strDataURI);
  21. }

猜你在找的jQuery相关文章