javascript - 使用 HTML5 Canvas 绘制透明度乘以颜色的图像

标签 javascript html canvas

我需要绘制一个透明度乘以颜色的图像。 我发现的唯一方法是像这样在离屏 Canvas 中准备一个乘以颜色的图像:

ctx.globalCompositeOperation = "copy"; // copy pixel-to-pixel source image
ctx.drawImage(image, ...);
ctx.globalCompositeOperation = "multiply"; // multiply it by red color
ctx.fillStyle = "#FF0000"; 
ctx.fillRect(...);
ctx.globalCompositeOperation = "destination-atop"; // restore transparency
ctx.drawImage(image, ...);

然后将其绘制到必要的 Canvas 上。

有没有更好(更快)的方法来做同样的事情?

最佳答案

如果你想在没有任何背景的情况下叠加半透明图像,就可以这样做。

如果图像正下方的“必要 Canvas ”上的背景是透明的,您可以将其相乘。

一些注意事项:

  • globalCompositeOperation="multiply" 在 Internet Explorer 中不可用

  • globalCompositeOperation="copy" 似乎没有必要。

关于javascript - 使用 HTML5 Canvas 绘制透明度乘以颜色的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31607663/

相关文章:

jquery - 如何通过Google脚本在Drive中的文件夹内创建文件夹?

html - 部分文字覆盖图片html

android - 撤消和重做 Canvas

javascript - 如何测试 Javascript 中的变量是否已初始化?

javascript - 直接从 codepen 复制的 donut 代码不起作用

javascript iframe 卸载

javascript - 在 HTML5 Canvas 上绘制拉伸(stretch)弧

javascript - 在 HTML 5 Canvas 上创建 Reuleaux 多边形的函数

javascript - 可调整大小的 html 元素

javascript - 内容脚本不会在每次页面加载时都被注入(inject)