如何在 html canvas 上用 replaceByImage() 而不是 drawImage() (忽略不透明度)?

How to replaceByImage() instead of drawImage() on html canvas (ignore opacity)?

我想在 canvas 上绘制一个图像(可以有透明部分),完全用 sourve 图像替换 canvas 内容(不像 source-over 合成操作)。

生成的 canvas 将具有与源图像完全相同的值。我找不到任何组合操作来执行此操作。

我总是可以在调用 drawImage() 之前清除 canvas 但我想知道是否有 faster/better 方法。

如果你想替换所有内容,你可以使用复制模式(从问题的文本来看):

ctx.globalCompositeOperation = "copy";

如果您只想删除 canvas 的部分内容,即。您的内容将被绘制到的区域,然后可以使用 clearRect:

ctx.clearRect(x, y, width, height);   // replace with values