• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 使用HTML5 Canvas API中的clip()方法裁剪区域图像_html5教程技巧

使用HTML5 Canvas API中的clip()方法裁剪区域图像_html5教程技巧

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,Canvas,裁剪等相关知识,匿名希望在学习及工作中可以帮助到您
使用Canvas绘制图像的时候,我们经常会想要只保留图像的一部分,这是我们可以使用canvas API再带的图像裁剪功能来实现这一想法。
Canvas API的图像裁剪功能是指,在画布内使用路径,只绘制该路径内所包含区域的图像,不会只路径外的图像。这有点像Flash中的图层遮罩。

使用图形上下文的不带参数的clip()方法来实现Canvas的图像裁剪功能。该方法使用路径来对Canvas话不设置一个裁剪区域。因此,必须先创建好路径。创建完整后,调用clip()方法来设置裁剪区域。
需要注意的是裁剪是对画布进行的,裁切后的画布不能恢复到原来的大小,也就是说画布是越切越小的,要想保证最后仍然能在canvas最初定义的大小下绘图需要注意save()和restore()。画布是先裁切完了再进行绘图。并不一定非要是图片,路径也可以放进去~

先来看看一个简单的Demo。

  1. "zh">
  2. "UTF-8">
  3. 裁剪区域
  4. "canvas">
  5. 你的浏览器居然不支持Canvas?!赶快换一个吧!!

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

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

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

  1. function drawScreen() {
  2. var x = canvas.width / 2;
  3. var y = canvas.height / 2;
  4. var radius = 75;
  5. var offset = 50;
  6. //裁剪的区域为 (x, y)为中心半径为75的圆
  7. context.save();
  8. context.beginPath();
  9. context.arc(x, y, radius, 0, 2 * Math.PI, false);
  10. context.clip();
  11. // 先画一个蓝色的圆弧, 超过裁剪的部分不显示
  12. context.beginPath();
  13. context.arc(x - offset, y - offset, radius, 0, 2 * Math.PI, false);
  14. context.fillStyle = 'blue';
  15. context.fill();
  16. // 画一个黄色的圆弧, 超过裁剪的部分不显示

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03详解微博发言框的@功能
  • 2018-12-03移动端利用H5实现压缩图片上传的功能
  • 2018-12-03HTML5 embed标签定义和用法详解_html5教程技巧
  • 2017-08-06借助HTML5 Canvas API制作一个简单的猜字游戏
  • 2018-12-03前端工程师目前境况和三年后的发展状况会怎么样呢?
  • 2018-12-03HTML5基础模板的实例代码分享
  • 2018-12-03解决在HTML5中的video标签无法播放视频的方法
  • 2017-08-06你不知道的5个HTML5新功能
  • 2018-12-03怎样用H5添加禁止缩放功能
  • 2018-12-03HTML入门必知

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 详细介绍7款让人惊叹的HTML5粒子动画特效详解
    • 基于html5 canvas实现漫天飞雪效果实例_html5教程技巧
    • 在HTML5的CANVAS上绘制椭圆的几种方法
    • html5获取手机GPS信息的示例代码
    • 图片之间的缝隙解决方法
    • html5 input属性使用示例
    • SVG基础|SVG PATH 元素
    • 如何解剖一个网站?
    • html5教程制作简单画板代码分享_html5教程技巧
    • 如何使用<nav>链接实现滚动到页面某一部分

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有