当前位置: 首页 > news >正文

canvas绘制圆角头像

如果你想绘制的网页包含一个圆弧形的头像的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();
} 

相关文章:

  • 第一个ServiceStack程序
  • OSChina 周六乱弹 —— 舔狗是没有好下场的
  • 英菲利普亲王车祸后确认未受伤 事发道路下调限速
  • Linux下修改MySQL的用户(root)的密码
  • 20140912-事件与委托
  • Greenplum -- 资源队列管理
  • C++范畴下测试数据类型的范围整理
  • iOS UIWebView截获html并修改便签内容
  • MySQL报错解决:ERROR! The server quit without updating
  • Jsp forward plugin的操作和方法
  • SQL手工注入漏洞测试(Sql Server数据库)
  • Windows Core OS 包含了开源组件
  • 快过年了,我给小明制定了一份价值60万的Java学习计划
  • windows程序设计简介
  • 深入理解javascript原型和闭包(1)——一切都是对象
  • 【前端学习】-粗谈选择器
  • 345-反转字符串中的元音字母
  • Intervention/image 图片处理扩展包的安装和使用
  • Java程序员幽默爆笑锦集
  • JS字符串转数字方法总结
  • Laravel 中的一个后期静态绑定
  • REST架构的思考
  • sublime配置文件
  • use Google search engine
  • 从重复到重用
  • 第十八天-企业应用架构模式-基本模式
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 简析gRPC client 连接管理
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 如何合理的规划jvm性能调优
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • hi-nginx-1.3.4编译安装
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • #define用法
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (¥1011)-(一千零一拾一元整)输出
  • (二)linux使用docker容器运行mysql
  • (分享)自己整理的一些简单awk实用语句
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)我也是一只IT小小鸟
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .gitignore文件---让git自动忽略指定文件
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 反射的使用
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET企业级应用架构设计系列之开场白
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @AliasFor注解