【发布时间】:2016-02-20 10:14:52
【问题描述】:
在我的应用程序中,我正在尝试将用户上传的图像与第二个画布中的徽标图像合并。当我下载图像时,我的徽标重叠在用户图像上
但我真正想要的是:
我想将 2 个单独的画布相互合并,但并排且不相互重叠。
这是我的下载画布代码:canvas_thumb 是用户正在上传的图片,canvas 是我在页面上已有的徽标图片。
function downloadCanvas() {
var bottleCanvas = document.getElementById('canvas_thumb');
var designCanvas = document.getElementById('canvas');
var bottleContext = bottleCanvas.getContext('2d');
bottleContext.drawImage(designCanvas, 0, 0);
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();
}
请看我的例子:http://bit.ly/1SYiniX
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
当我下载图像时,我的徽标重叠在用户图像上。下面的输出:i.stack.imgur.com/n5Jvc.png 但我真正想要的是:i.stack.imgur.com/Zmx4N.png 即我想将 2 个单独的画布相互合并,但并排而不是相互重叠。
-
drawImage最多有九个参数可以将一幅图像绘制到另一幅图像上。它不会神奇地知道把图像放在哪里,你必须把它放在正确的位置。有关drawImage参数的信息,请参阅w3schools.com/jsref/canvas_drawimage.asp -
@Blindman67 w3schools 越来越好,但我仍然不推荐它作为参考 -> w3fools.com。最好使用Mozilla Development Network 或spec itself
-
@Andreas 我已经将新手派到 MDN 只是让他们回来告诉我他们找不到要找的东西。 w3schools 对某些人来说可能不酷,但 MDN 的导航对那些几乎没有经验的人不友好。 w3schools 关于 drawImage 的信息是准确的,而 MDN 在其页面上有错误(在查看时,不是我为什么不参考它们)我将新手送到 w3schools,因为它是一个设计更好的参考。
-
@Blindman67 如果你可以只用
drawImage()来电,我想看看。 OP 需要以他想要的输出大小的第三个画布来绘制他向我们展示的两个画布......
标签: javascript image canvas download merge