有没有办法制作 2 幅画布,两幅画布上都有图像?

Is there a way to make 2 canvases with an image on both of the canvases?

提问人:ToMadToCode 提问时间:11/16/2023 更新时间:11/16/2023 访问量:17

问:

所以我想要一个画布,上面都有一张图像。

这是我目前拥有的画布代码

<img id="Man2" width="0" height="0" src="Man2.PNG" alt="Man2">

<canvas id="myCanvas1" width="600" height="450" style="border:1px solid grey;"></canvas>

<script>
window.onload = function() {
  const canvas = document.getElementById("myCanvas1");
  const ctx = canvas.getContext("2d");
  const img = document.getElementById("Man2");
  ctx.drawImage(img, 10, 10);
};
</script>

有没有办法复制这一点?

我试图通过更改源、图像 id、alt、canvas id 来复制代码。这是我所做的。

<img id="Evil" width="0" height="0" src="Evil.png" alt="Evil">

<canvas id="myCanvas2" width="600" height="450" style="border:1px solid grey;"></canvas>

<script>
window.onload = function() {
  const canvas = document.getElementById("myCanvas2");
  const ctx = canvas.getContext("2d");
  const img = document.getElementById("Evil");
  ctx.drawImage(img, 10, 10);
};
</script>

它确实用图像制作了另一幅画布。但它完全删除了另一张画布上的图像。

这里有几张图片可以说明我的意思。

Before code

After code

HTML 图像 画布

评论

0赞 enhzflep 11/16/2023
如果您提供尝试将两个图像放在两个画布上的代码,那将会有所帮助。如果您只是复制了上面的代码,那么它就像该部分正在吸引您一样。如果你给它分配了两次,那么只有第二个最终会做一些事情,因为它会覆盖第一个分配了东西的实例。如果这是怎么回事,请考虑调查 - developer.mozilla.org/en-US/docs/Web/API/EventTarget/......window.onload = ......addEventListener
0赞 ToMadToCode 11/16/2023
上面提供的画布代码正在尝试将图像放在画布上。
0赞 enhzflep 11/16/2023
事实上。更好的词语选择可能是“如果你提供所有的代码......”。因为正如我所提到的,这两个片段一起使用的方式可能是(阅读:似乎可能是)导致问题的原因。
0赞 ToMadToCode 11/17/2023
像整体一样,我目前拥有的代码?
1赞 ToMadToCode 11/20/2023
我想通了。.addEventListener 帮了大忙。我为 ctx、img 和画布制作了一个变量。然后我通过事件侦听器调用了 img。

答: 暂无答案