javascript - 如何将 Canvas 转换为图像?

标签 javascript canvas

我正在将整个页面转换为 Canvas ,现在我想将其转换为可以下载的图像:

  html2canvas(document.body, {
    allowTaint: true,
    onrendered: function(canvas) {
      document.body.appendChild(canvas).setAttribute("id", "canvas");
      var canvas = document.getElementById("canvas");
      var img    = canvas.toDataURL("image/png");
      img.setAttribute('crossOrigin', 'anonymous');
      document.write('<img src="'+img+'"/>');
    }
  });

这可行,但我在控制台中收到此错误并且未创建图像

Uncaught (in promise) DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

最佳答案

试试这个:

<a id="download" 
  onclick="var download = document.getElementById('download');
  download.href = document.getElementById('canvasElementId').toDataURL();
  download.download='imageName.png'">
Save Canvas Image</a>

您拥有所有不需要的多余内容,它会生成一个图像,您必须通过右键单击并保存来执行额外的步骤。这更容易并且效果更好。

如果出现错误,提示“无法导出受污染的 Canvas ”,那么如果它不起作用并且您可以使用您的应用程序来删除该污染,则可以删除该污染。

关于javascript - 如何将 Canvas 转换为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382180/

相关文章:

javascript - 在哪里将我的 mongodb Atlas 连接到我的 React 应用程序?

javascript - 限制鼠标事件到 Pixi.js 容器

android - 将月球着陆器转换为使用 Opengl

javascript - 在 JavaScript 函数中加载图像

javascript - 如何使用canvas将多张图像转换为base64

javascript - React - 如何更改当前单击项目的 Accordion 标题的文本

javascript - 使用正则表达式提取句子中的最后几个单词?

javascript - 我试图理解这段 TypeScript 代码

javascript - 跳出 if 语句

javascript - 如何使用 Canvas 在另一个图像上绘制图像