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 相关文章推荐
Web前端绘制0.5像素的几种方法
Aug 11 HTML / CSS
纯css3实现照片墙效果
Dec 26 HTML / CSS
几个CSS3的flex弹性盒模型布局的简单例子演示
May 12 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
Mar 26 HTML / CSS
css3 利用transform打造走动的2D时钟
Oct 20 HTML / CSS
HTML5离线缓存Manifest是什么
Mar 09 HTML / CSS
使用Html5、CSS实现文字阴影效果
Jan 17 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
Oct 20 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
Mar 21 HTML / CSS
html5中的一些标签学习(心得)
Oct 18 HTML / CSS
使用phonegap进行提示操作的具体方法
Mar 30 HTML / CSS
解决HTML5手机端页面缩放的问题
Oct 27 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
js指定步长实现单方向匀速运动
2017/07/17 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
Django入门使用示例
2017/12/12 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Python实现京东抢秒杀功能
2021/01/25 Python
财务经理的岗位职责
2013/12/17 职场文书
市场部岗位职责
2015/02/12 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
MySQL索引是啥?不懂就问
2021/07/21 MySQL