首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >globalCompositeOperation

globalCompositeOperation
EN

Stack Overflow用户
提问于 2010-07-26 15:02:50
回答 2查看 4K关注 0票数 3

我尝试在一个循环中使用globalCompositeOperation,向它传递不同的字符串(source-atopsource-over等)。在相同的2D环境中,但我注意到Firefox只让我画了几个形状,而Opera只画了最后一个形状。

现在,我的问题是,在当前上下文中,我一次只能使用一个globalCompositeOperation吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-21 15:30:01

你注意到这个问题的原因是你选择的模式不被浏览器正确支持。浏览器之间存在一些关于globalCompositeOperation的问题。目前,只有几种模式可以在不同浏览器(Chrome/Safari/Opera/Firefox)之间正常工作:

  • source-over
  • source-atop
  • destination-over
  • destination-out
  • lighter
  • xor

要了解更多信息,请查看以下链接;

http://www.rekim.com/2011/02/11/html5-canvas-globalcompositeoperation-browser-handling/

至于你的第二个问题,你一次只能使用一种模式。这是不幸的,因为“浅”和“暗”更像是“混合模式”,与其他一些复合模式一起使用会非常有用。我很乐意看到这一变化。

票数 5
EN

Stack Overflow用户

发布于 2013-02-27 06:21:13

简而言之,是的。

最后一个渲染值发生在globalCompositeOperation之前,例如drawImage(),fillRect()。

可以在绘制后立即对其进行更改以将其应用于下一个图形,如下所示:

http://jsfiddle.net/eCDRN/

代码语言:javascript
复制
ctx.globalCompositeOperation = "copy";
ctx.fillRect(100, 100, 100, 100);
ctx.globalCompositeOperation = "destination-in";
ctx.fillRect(150, 150, 100, 100);
ctx.globalCompositeOperation = "xor";
ctx.fillRect(175, 175, 100, 100);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3332835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档