在canvas中,可以使用clip()函数裁剪区域,设定裁剪区域后,只有在区域内的图像才能显示,其余部分会被屏蔽掉。本文主要和大家介绍了canvas裁剪clip()函数的具体使用的相关资料,希望能帮助到大家。
未使用裁剪绘制一个圆
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
*{margin:0; padding:0;}
html, body{width:100%; height:100%; overflow:hidden; background-color:#afafaf;}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
var canvas = document.getelementbyid('canvas'),
context = canvas.getcontext('2d');
canvas.width = document.body.clientwidth;
canvas.height = document.body.clientheight;
context.linewidth = 3;
context.strokestyle = 'red';
context.beginpath();
context.arc(200, 200, 100, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.stroke();
context.closepath();
</script>
</body>
</html>
效果
使用clip()裁剪区域
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
*{margin:0; padding:0;}
html, body{width:100%; height:100%; overflow:hidden; background-color:#afafaf;}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
var canvas = document.getelementbyid('canvas'),
context = canvas.getcontext('2d');
canvas.width = document.body.clientwidth;
canvas.height = document.body.clientheight;
context.linewidth = 3;
context.strokestyle = 'red';
context.rect(0, 0, 200, 200);
context.clip();
context.beginpath();
context.arc(200, 200, 100, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.stroke();
context.closepath();
</script>
</body>
</html>
效果
也可以使用arc绘制圆形的剪裁区域
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
*{margin:0; padding:0;}
html, body{width:100%; height:100%; overflow:hidden; background-color:#afafaf;}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
var canvas = document.getelementbyid('canvas'),
context = canvas.getcontext('2d');
canvas.width = document.body.clientwidth;
canvas.height = document.body.clientheight;
context.linewidth = 3;
context.strokestyle = 'red';
context.arc(100, 100, 150, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.clip();
context.beginpath();
context.arc(200, 200, 100, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.stroke();
context.closepath();
</script>
</body>
</html>
效果
使用save和restore实现只裁剪单个路径
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
*{margin:0; padding:0;}
html, body{width:100%; height:100%; overflow:hidden; background-color:#afafaf;}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
var canvas = document.getelementbyid('canvas'),
context = canvas.getcontext('2d');
canvas.width = document.body.clientwidth;
canvas.height = document.body.clientheight;
context.linewidth = 3;
context.strokestyle = 'red';
context.save();
context.rect(0, 0, 200, 200);
context.clip();
context.beginpath();
context.arc(200, 200, 100, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.stroke();
context.closepath();
context.restore();
context.beginpath();
context.arc(250, 250, 100, (math.pi / 180) * 0, (math.pi / 180) * 360, false);
context.stroke();
context.closepath();
</script>
</body>
</html>
效果
相关推荐:
使用html5 canvas api中的clip()方法裁剪区域图像代码实例
以上就是canvas中使用clip()函数裁剪方法的详细内容。