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 渐变(Gradients)之CSS3 径向渐变
Jul 08 HTML / CSS
css3气泡 css3关键帧动画创建的动态通知气泡
Feb 26 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
Dec 01 HTML / CSS
使用HTML5的表单验证的简单示例
Sep 09 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
Jan 20 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
canvas小画板之平滑曲线的实现
Aug 12 HTML / CSS
血轮眼轮回眼特效 html+css
Mar 31 HTML / CSS
Web前端:CSS最强总结 附详细代码
Mar 31 HTML / CSS
详解CSS3浏览器兼容
Dec 24 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python 自动补全(vim)
2014/11/30 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python批量修改文件名的示例
2020/09/27 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
酒店总经理助理岗位职责
2014/02/01 职场文书
广播体操比赛口号
2014/06/10 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
Java数据结构之链表相关知识总结
2021/06/18 Java/Android