javascript - 在 HTML5 中将两个图像组合在一个 Canvas 上

标签 javascript html canvas

我正在使用 HTML5 canvas 元素。假设我有 2 个 ImageData 对象,我想将它们组合起来放在一个 Canvas 上。假设我不关心这些图像如何组合。两个 ImageData 对象具有完全相同的像素数和形状。

合并两个图像的最佳方式是什么?

我认为我可以编写一个 for 循环并遍历 ImageData 数组并手动组合并设置每个像素的每个 rgba 值,但我想知道是否有更好的方法?我需要尽快进行此操作。

提前致谢。

最佳答案

如果您只是想将一张图片叠加在另一张图片之上,您可能想做这样的事情:

ctx.drawImage(image1, x, y);
// adjust globalAlpha as needed, or skip if the image has its own transparency
ctx.globalAlpha = 0.5;
ctx.drawImage(image2, x, y);

或者,根据您所追求的具体效果:

ctx.drawImage(image1, x, y);
ctx.globalCompositeOperation = "lighten"; // many other possibilities here
ctx.drawImage(image2, x, y);

这可能比通过 get/putImageData 方法逐像素绘制更快,但速度取决于浏览器。

关于javascript - 在 HTML5 中将两个图像组合在一个 Canvas 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878319/

相关文章:

javascript - 如何使用 JavaScript 更改切换开关

javascript - 如何在html5页面加载时找到系统的音频驱动状态

html - 你可以制作自定义别名吗?

mobile - 移动设备上是否支持 Canvas 和 WebGL(three.js)?

javascript - 如何根据下拉框 #1 的输入更改下拉框 #2?

javascript - 过滤器分组和嵌套 ng-repeats,带有 Angular 下拉菜单

javascript - 如果未找到 javascript,则终止代码

jquery - Css 转换不完全有效

html - 如何将百分比宽度放入 html Canvas (无 css)

javascript - 为什么这个索引 html 没有在我的桌面上显示游戏?