gpt4 book ai didi

javascript - 如何在不删除背景的情况下在 Canvas 上删除

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:16 24 4
gpt4 key购买 nike

我有一个 Canvas ,我将 drawimage() 作为背景。

我有一个橡皮擦工具,我想用它删除 Canvas 上的内容,但不能删除 Canvas 中的图像。我知道可以将图像作为单独的元素放在 Canvas 后面,但这不是我想要的,因为我希望将 Canvas 中的内容保存为图像。

我的绘图函数在这里:

function draw (event) {     
if (event == 'mousedown') {
context.beginPath();
context.moveTo(xStart, yStart);
} else if (event == 'mousemove') {
context.lineTo(xEnd, yEnd);
} else if (event == 'touchstart') {
context.beginPath();
context.moveTo(xStart, yStart);
} else if (event == 'touchmove') {
context.lineTo(xEnd, yEnd);
}
context.lineJoin = "round";
context.lineWidth = gadget_canvas.radius;
context.stroke();
}

如果我需要进一步解释,我会的。

提前谢谢你。

最佳答案

有几种方法可以解决这个问题。

我建议将图像作为 Canvas 的 CSS“背景图像”。然后像往常一样在 Canvas 上绘制。

当您想将 Canvas 保存为图像时,您需要执行一系列事件:

  1. 创建一个与普通 Canvas 一样大的内存 Canvas 。称它为 can2
  2. ctx2.drawImage(can1, 0, 0)//将第一个 Canvas 绘制到新 Canvas 上
  3. ctx.clearRect(0, 0, width, height)//清除第一个 Canvas
  4. ctx.drawImage(background, 0, 0)//在第一个 Canvas 上绘制图像
  5. ctx.drawImage(can2, 0, 0)//将(保存的)第一个 Canvas 画回自身

这将使您两全其美。

关于javascript - 如何在不删除背景的情况下在 Canvas 上删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com