canvas globalCompositeOperation
来源:互联网 发布:阿里云扩容数据盘 编辑:程序博客网 时间:2024/06/12 01:23
globalCompositeOperation 可以在已有图形后面再画新图形,还可以用来遮盖,清除(比 clearRect 方法强劲得多)某些区域。
使用:globalCompositeOperation = type;
效果图如下:
不知为什么,source-in、source-atop 效果没出来
不知为什么,destination-in、destination-out 效果没出来
<!--图片的源码为--><body> <div> <ul> <li>source-over:默认设置,新图形会覆盖在原有内容之上。</li> <li>source-in:新图形会仅仅出现与原有内容重叠的部分。其它区域都变成透明的。</li> <li>source-out:结果是只有新图形中与原有内容不重叠的部分会被绘制出来。</li> <li>source-atop:新图形中与原有内容重叠的部分会被绘制,并覆盖于原有内容之上。</li> </ul> <canvas id="canvas1" width=160 height=160></canvas> <canvas id="canvas2" width=160 height=160></canvas> <canvas id="canvas3" width=160 height=160></canvas> <canvas id="canvas4" width=160 height=160></canvas> </div> <div> <ul> <li>destination-over:会在原有内容之下绘制新图形。</li> <li>destination-in:原有内容中与新图形重叠的部分会被保留,其它区域都变成透明的。</li> <li>destination-out:原有内容中与新图形不重叠的部分会被保留。</li> <li>destination-atop:原有内容中与新内容重叠的部分会被保留,并会在原有内容之下绘制新图形。</li> </ul> <canvas id="canvas5" width=160 height=160></canvas> <canvas id="canvas6" width=160 height=160></canvas> <canvas id="canvas7" width=160 height=160></canvas> <canvas id="canvas8" width=160 height=160></canvas> </div> <div> <ul> <li>lighter:两图形中重叠部分作加色处理。</li> <li>darker:两图形中重叠的部分作减色处理。</li> <li>xor:重叠的部分会变成透明。</li> <li>copy:只有新图形会被保留,其它都被清除掉。</li> </ul> <canvas id="canvas9" width=160 height=160></canvas> <canvas id="canvas10" width=160 height=160></canvas> <canvas id="canvas11" width=160 height=160></canvas> <canvas id="canvas12" width=160 height=160></canvas> </div> <script type="text/javascript"> draw(1, "source-over"); draw(2, "source-in"); draw(3, "source-out"); draw(4, "source-atop"); draw(5, "destination-over"); draw(6, "destination-in"); draw(7, "destination-out"); draw(8, "destination-atop"); draw(9, "lighter"); draw(10, "darker"); draw(11, "xor"); draw(12, "copy"); function draw(id, globalCompositeOperation) { var canvas = "canvas" + id;console.log(canvas); var ctx = document.getElementById(canvas).getContext("2d"); ctx.globalCompositeOperation = globalCompositeOperation; ctx.fillStyle = "#0000ff"; ctx.fillRect(0, 0, 100, 100); ctx.fillStyle = "#ff0000"; ctx.fillRect(40, 40, 100, 100); } </script></body>
参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Compositing
1 0
- canvas globalCompositeOperation
- canvas 合成globalCompositeOperation
- Canvas里的globalCompositeOperation
- 图解Canvas中globalCompositeOperation属性
- HTML 5 canvas globalCompositeOperation 属性
- HTML 5 canvas globalCompositeOperation 属性
- HTML5 canvas globalCompositeOperation绘图顺序讲解
- 【HTML5】Canvas之globalCompositeOperation属性详解
- canvas绘图 globalCompositeOperation 各种叠加效果图
- canvas中颜色合成之globalCompositeOperation属性学习
- 用canvas做图像遮罩---globalCompositeOperation 属性
- globalCompositeOperation 属性
- Canvas
- Canvas
- canvas
- Canvas
- Canvas
- canvas
- java设计模式
- 换头像的功能实现
- JS实现密码加密(base64, md5, sha1)
- android官方适配
- Codeforces Round #358 (Div. 2) B. Alyona and Mex
- canvas globalCompositeOperation
- 关于UITextField的左移问题
- MVP 与MVC 的区别
- lintcode ----最长连续序列
- Android Canvas编程:对rotate()和translate()两个方法的研究
- 负数在计算机中存储方式,原码,补码,反码概念
- c++ STL::String::Compare (_Buf内容一致,compare不相等)
- js面向对象编程
- App Store2016年最新审核规则