canvas绘制圆角头像的实现方法


Posted in HTML / CSS onJanuary 17, 2019

如果你想绘制的网页包含一个圆弧形的头像的canvas图片,但是头像本身是正方形的,需要的方法如下:

首先, 拿到头像在画布上的坐标和宽高:(具体怎么获取不在此做具体介绍)

let {avatarX, avatarY, avatarW, avatarH} = {20, 20, 80, 80};

然后 只需要调用以下函数即可:

let Canvas = document.createElement('canvas');
let ctx = Canvas.getContext("2d");
let avatar = new Image();
avatar.src = '../src/xx.png';
avatar.onload = (scaleBy = 2) => {
   circleImg(ctx, avatar, avatarX * scaleBy, avatarY * scaleBy, avatarW * scaleBy / 2);
}

// r: 半径
function circleImg(ctx, img, x, y, r) {
    ctx.save();
    var d =2 * r;
    var cx = x + r;
    var cy = y + r;
    ctx.arc(cx, cy, r, 0, 2 * Math.PI);
    ctx.clip();
    ctx.drawImage(img, x, y, d, d);
    ctx.restore();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3实战第一波 让我们尽情的圆角吧
Aug 27 HTML / CSS
css3实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
May 07 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
Dec 12 HTML / CSS
CSS3中Transition动画属性用法详解
Jul 04 HTML / CSS
浅谈css3中的渐进增强和优雅降级
Dec 01 HTML / CSS
浅谈css3中calc在less编译时被计算的解决办法
Dec 04 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
html5.2 dialog简介详解
Feb 27 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
Aug 27 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
Jul 31 HTML / CSS
html+css实现赛博朋克风格按钮
May 26 HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 #HTML / CSS
Canvas 像素处理之改变透明度的实现代码
Jan 08 #HTML / CSS
详解Canvas实用库Fabric.js使用手册
Jan 07 #HTML / CSS
Html5原创俄罗斯方块(基于canvas)
Jan 07 #HTML / CSS
h5使用canvas画布实现手势解锁
Jan 04 #HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
Jan 03 #HTML / CSS
详解webapp页面滚动卡顿的解决办法
Dec 26 #HTML / CSS
You might like
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Django 开发环境配置过程详解
2019/07/18 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
python实现视频读取和转化图片
2019/12/10 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
新闻编辑自荐信
2013/11/03 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
教师业务学习制度
2014/01/25 职场文书
廉洁自律承诺书
2014/03/27 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技
小程序实现侧滑删除功能
2022/06/25 Javascript