使用HTML5 Canvas API中的clip()方法裁剪区域图像


当前第2页 返回上一页

运行结果:
2016325102516578.jpg (850×500)

混合使用save()和restore()方法,我们可以限定画画区域。首先我们可以使用rect()方法包围一个我们希望画画的区域,然后使用clip()方法把该区域裁剪下来。

这样以后我们不管在context中做了什么操作,只有限定的部分显示出来。也就是说clip()的作用是限定要显示的区域。当我们不希望继续限定区域了,可以使用restore()方法跳出来,继续操作原来的context。
再来看这样一个裁剪:
2016325102545351.png (275×198)

JavaScript Code复制内容到剪贴板

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

function drawScreen() {  

        var x = canvas.width / 2;  

        var y = canvas.height / 2;  

        var radius = 75;  

        var offset = 50;  

   

        //裁剪的区域为 (x, y)为中心半径为75的圆  

        context.save();  

        context.beginPath();  

        context.arc(x, y, radius, 0, 2 * Math.PI, false);  

        context.clip();  

   

        // 先画一个蓝色的圆弧, 超过裁剪的部分不显示  

        context.beginPath();  

        context.arc(x - offset, y - offset, radius, 0, 2 * Math.PI, false);  

        context.fillStyle = 'blue';  

        context.fill();  

   

        // 画一个黄色的圆弧, 超过裁剪的部分不显示  

        context.beginPath();  

        context.arc(x + offset, y, radius, 0, 2 * Math.PI, false);  

        context.fillStyle = 'yellow';  

        context.fill();  

   

        // 画一个红色的圆弧, 超过裁剪的部分不显示  

        context.beginPath();  

        context.arc(x, y + offset, radius, 0, 2 * Math.PI, false);  

        context.fillStyle = 'red';  

        context.fill();  

   

        /*

         * restore()方法会返回到context原先的状态,在这里是clip()之前的状态。 

         * 大家可以移除context.beginPath()方法,试试会发生什么。 

         */ 

        context.restore();  

        context.beginPath();  

        context.arc(x, y, radius, 0, 2 * Math.PI, false);  

        context.lineWidth = 10;  

        context.strokeStyle = 'blue';  

        context.stroke();  

    }

再次强调,一般使用裁剪功能的调用形式是

1

2

3

save();

clip();

restore();

这个顺序来进行调用。

相关推荐:

HTML5 Canvas绘制时指定颜色与透明度的方法

使用HTML5 Canvas为图片填充颜色和纹理

以上就是使用HTML5 Canvas API中的clip()方法裁剪区域图像的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

10个HTML5代码片段可在网站制作中随时可用详解

HTML5语义化标签及兼容性处理详解

HTML5 canvas标签是什么意思?canvas标签使用方法介绍

htnl5利用svg页面高斯模糊的方法

css中文字相关属性的介绍

HTML5 video/audio播放本地文件

svg和css3实现环形渐变进度条的代码示例

HTML5边玩边学(二)-基础绘图

后盾网HTML5视频教程

如何从javascript到typescript?

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...