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教程(8):CSS3透明度指南
Apr 02 HTML / CSS
css3中transition属性详解
Sep 02 HTML / CSS
CSS3实现闪烁动画效果的方法
Feb 09 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
Mar 29 HTML / CSS
详解HTML5 LocalStorage 本地存储
Dec 23 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
Mar 25 HTML / CSS
HTML5新增的标签和属性归纳总结
May 02 HTML / CSS
html5简单示例_动力节点Java学院整理
Jul 07 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 HTML / CSS
html5给汉字加拼音加进度条的实现代码
Apr 07 HTML / CSS
纯CSS如何禁止用户复制网页的内容
Nov 01 HTML / CSS
使用CSS定位HTML元素的实现方法
Jul 07 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
php接口与接口引用的深入解析
2013/08/09 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
项目实践之javascript技巧
2007/12/06 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
详解Node 定时器
2018/02/26 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python绘制地震散点图
2019/06/18 Python
Python tkinter常用操作代码实例
2020/01/03 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
会议邀请函范文
2014/01/09 职场文书
听课评语大全
2014/04/30 职场文书
2014年督导工作总结
2014/11/19 职场文书
技术转让协议书
2016/03/19 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers