是否可以将 2 个单独的画布元素的内容合并到一个画布元素中?
类似于在 Photoshop 中“拼合”两层或更多层的东西……?
我可以想出一个办法,但我不太确定。我以 .png 的形式导出两个 canvi(笑)的内容,然后让第三个画布元素使用某种混合算法(异或、混合、负片等)绘制两个图像。
原文由 Abhishek 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以将 2 个单独的画布元素的内容合并到一个画布元素中?
类似于在 Photoshop 中“拼合”两层或更多层的东西……?
我可以想出一个办法,但我不太确定。我以 .png 的形式导出两个 canvi(笑)的内容,然后让第三个画布元素使用某种混合算法(异或、混合、负片等)绘制两个图像。
原文由 Abhishek 发布,翻译遵循 CC BY-SA 4.0 许可协议
canvas
元素没有在 CSS 中指定的背景。这将使它们透明。canvas
元素放在彼此之上。例如,将它们全部包装在 <div class="canvas-layers">
中,然后像这样使用 CSS: /* Set to the same width/height as the canvases */
.canvas-layers { position:relative; width:400px; height:300px }
.canvas-layers canvas { position:absolute; top:0; left:0 }
drawImage
将一个画布作为源“图像”。例如,参见:globalCompositeOperation
属性并使用 drawImage
将一个画布作为源。请在此处查看示例:https://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html
// Might be an 'offscreen' canvas
var over = someCanvas.getContext('2d');
var under = anotherCanvas.getContext('2d');
over.blendOnto( under, 'screen', {destX:30,destY:15} );
有关详细信息,请参阅 自述文件。
原文由 Phrogz 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答1.6k 阅读✓ 已解决
2 回答941 阅读✓ 已解决
4 回答1.6k 阅读
1 回答968 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答809 阅读
当然可以,而且您不需要任何有趣的库或任何东西,只需使用画布作为图像调用
drawImage
。这是一个示例,我将两个画布元素组合到第三个上:
http://jsfiddle.net/bnwpS/878/
当然你可以只用两个(一个放在另一个上),但三个是一个更好的例子。
如果您想要 XOR 效果或其他效果,您可以随时更改
globalCompositeOperation
。