【发布时间】:2015-06-15 14:33:17
【问题描述】:
我正在尝试将两个 HTML 画布合并到一个画布中,然后将其作为图像下载。我的代码如下:
function downloadCanvas() {
var bottleCanvas = document.getElementById('bottleCanvas');
var designCanvas = document.getElementById('editorCanvas');
var bottleContext = bottleCanvas.getContext('2d');
bottleContext.drawImage(designCanvas, 69, 50);
var dataURL = bottleCanvas.toDataURL("image/png");
var link = document.createElement('a');
link.download = "bottle-design.png";
link.href = bottleCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
link.click();
}
我的问题似乎是以下行:
bottleContext.drawImage(designCanvas, 69, 50);
这应该将一个画布的内容绘制到另一个画布上,它确实这样做了,但随后会阻止代码的后半部分运行和下载图像。当我删除此特定行时,下载功能可以正常工作,但不幸的是只下载其中一个画布。
因此,我的问题是:我在这里做错了什么?或如何合并两个 HTML 画布,然后将其下载为图像。
(另一方面,我上面的下载代码只在 Chrome 中运行良好 - 在其他浏览器中我无法设置文件名和文件扩展名。)
【问题讨论】:
标签: javascript html canvas html5-canvas todataurl