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 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
CSS3实现的炫酷菜单代码分享
Mar 12 HTML / CSS
css3 实现圆形旋转倒计时
Feb 24 HTML / CSS
css3编写浏览器背景渐变背景色的方法
Mar 05 HTML / CSS
CSS3之transition实现下划线的示例代码
May 30 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
Apr 25 HTML / CSS
canvas裁剪clip()函数的具体使用
Mar 01 HTML / CSS
使用html5 canvas绘制圆环动效
Jun 03 HTML / CSS
sass 常用备忘案例详解
Sep 15 HTML / CSS
CSS使用伪类控制边框长度的方法
Jan 18 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连接mssql数据库的几种方法
2013/02/21 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
vue+element实现批量删除功能的示例
2018/02/28 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
python实现xlsx文件分析详解
2018/01/02 Python
将python代码和注释分离的方法
2018/04/21 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python中url标签使用知识点总结
2020/01/16 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
校班主任推荐信范文
2013/12/03 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
餐厅总厨求职信
2014/03/04 职场文书
软件项目开发计划书
2014/05/01 职场文书
店长岗位职责
2015/02/11 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL