基础实现方法

//html
<canvas style="background: pink;"></canvas>
//js
let haha = "haha";
let canvas = document.querySelector("canvas");
let oCtx = canvas.getContext("2d");
canvas.width = 40;
canvas.height = 40;
let str = haha.substring(0, 1).toUpperCase();
oCtx.font = "30px 微软雅黑";
oCtx.textBaseline = "middle"
oCtx.textAlign = "center";
oCtx.fillText(str, canvas.width / 2, canvas.height/ 2);
let dataURL = canvas.toDataURL();
console.log(dataURL);

这样会得到图片连接

但是到这里会发现两个问题
1.文字不是垂直居中的
2.通过连接得到的图片没有背景图片

问题解决

  1. 垂直居中:

将填充文字的位置修改一下

let textMetrics = oCtx.measureText(str);
let actualBoundingBoxDescent = textMetrics.actualBoundingBoxDescent;
oCtx.fillText(str, canvas.width / 2, (canvas.height + actualBoundingBoxDescent) / 2);
// oCtx.fillText(str, canvas.width / 2, canvas.height/ 2);
  1. 在填充文字前面添加加上以下的代码:
oCtx.fillStyle = "pink";
oCtx.fillRect(0, 0, canvas.width, canvas.height);
oCtx.fillStyle = "#fff";    //这行是文字的颜色,不加这样的话,文字会看不出来

最终实现

<canvas></canvas>
<script>let haha = "haha";let canvas = document.querySelector("canvas");let oCtx = canvas.getContext("2d");canvas.width = 40;canvas.height = 40;oCtx.fillStyle = "pink";oCtx.fillRect(0, 0, canvas.width, canvas.height);oCtx.fillStyle = "#fff";let str = haha.substring(0, 1).toUpperCase();oCtx.font = "30px 微软雅黑";// 设置对其方式oCtx.textBaseline = "middle"oCtx.textAlign = "center";let textMetrics = oCtx.measureText(str);let actualBoundingBoxDescent = textMetrics.actualBoundingBoxDescent;oCtx.fillText(str, canvas.width / 2, (canvas.height + actualBoundingBoxDescent) / 2);let dataURL = canvas.toDataURL('image/jpeg', 0.6);console.log(dataURL);
</script>

如有疑问或补充请提出来。
转载请附上链接,谢谢

用户名第一个字符设置为默认头像相关推荐

  1. ODOO 用户默认头像-怎么设置的默认头像

    在模型中 from odoo.modules.module import get_module_resourceclass HrEmployeePrivate(models.Model):_name ...

  2. 默认访问首页 || 国际化||设置全局字符编码的默认设置

    默认访问首页 国际化 在spring中是这样配置的 1).编写国际化配置文件: 2).使用ResourceBundleMessageSource管理国际化资源文件 3).在页面使用 fmt:messa ...

  3. linux中ll下第一个字符是l,linux ls -l 详解

    以root的家目录为例: 可以看到,用ls -l命令查看某一个目录会得到一个7个字段的列表. 第1行:总计(total) Total后面的数字是指当前目录下所有文件所占用的空间总和.可以使用ls –l ...

  4. 怎么修改设置路由器默认密码

    通常路由器默认的登录账户名与密码都是admin,只要在路由器网络下的用户都可以通过这个默认的路由器账户密码登录路由器管理界面,一般管理员都会修改掉这个默认路由器登录密码,防止用户修改路由器上网参数,设 ...

  5. ad19pcb设置恢复默认_电脑主板BIOS设置详解BIOS知识大全

    电脑主板BIOS设置详解-BIOS知识大全 什么是电脑BIOS,一般电脑主板都设置了电脑开机后一直按着Del键即可进入BIOS. 系统开机启动 BIOS,即微机的基本输入输出系统(Basic Inpu ...

  6. 删除字符串第一个字符 php,php删除字符串第一个字符的方法

    摘要 腾兴网为您分享:php删除字符串第一个字符的方法,中英翻译,指南针,掌上看家,洋葱数学等软件知识,以及仙剑4秋天,西瓜影音,叭哒漫画,轻加减肥,qq经典头像98个,otcbtc,电子相册软件,巧 ...

  7. 如何将Chrome谷歌浏览器的桌面快捷方式和任务栏快捷方式设置成默认打开无痕模式

    1.桌面Chrome谷歌浏览器的快捷方式设置成默认打开模式为无痕模式 第一步:在桌面上找到Chrome谷歌浏览器图标,右击鼠标,点击最下方属性(R) 第二步:在属性内点击上方菜单栏-[快捷方式],找到 ...

  8. 设置门户默认首页提示:此网页包含重定向循环 重新加载(去掉portal.php尾巴的办法)

    设置门户默认首页提示:此网页包含重定向循环 重新加载(去掉portal.php尾巴的办法) 论坛开启了门户,想设置门户为默认主页,可设置好后,你却发现后面多了个"portal.php&quo ...

  9. 怎样使用计算机上的高级共享设置密码,win7系统电脑,如何设置共享,共享计算机的用户名和密码怎样设置...

    如何设置共享,共享计算机的用户名和密码怎样设置 百度文库的东西 自己能找到方法的...XP与WIN7如何共享 第一,双击桌面上网络图标. 第二,单击上面网络共享中心. 第三,单击左边的更改高级共享设置 ...

  10. excel 插入计算机用户名,Excel中进行设置个性化用户名的操作方法

    对于excel爱好者来说 ,了解怎样给excel设置个性化用户名很重要.今天,学习啦小编就教大家在Excel中进行设置个性化用户名的操作方法. Excel中进行设置个性化用户名的操作步骤 设置个性化用 ...

最新文章

  1. 事件源event.target
  2. 补丁分发 linux,patch 命令应用补丁
  3. JAVA反射机制初步理解
  4. 【java】java String 源码
  5. Python+django网页设计入门(10):分页显示
  6. 如何把一个字符串填充到一个无类型的指针 - 回复 豪杰的爸爸 的问题
  7. 年总结(七):这半年的生活(2017.1—2017.7)
  8. 【机器人】激光测距传感器的数据处理步骤
  9. Sublime Text 插件 【转】
  10. SQL根据下标,返回split分割后字符串
  11. Spring的核心思想,依赖注入
  12. ActiveMQ的下载安装与操作示例
  13. html开始游戏如何打开,dnf游戏进不去 点击开始-运行,输入CMD
  14. 仿淘宝,京东红包雨(基于Phaser框架)
  15. linux用mame玩游戏,Ubuntu下用xmame玩街机游戏
  16. 爆款综艺也总火不过三季?谁来背锅?
  17. Go语言log日志包详解及使用
  18. 电类专业(自动化、电气、电子、电力、通信等)的大学四年应该怎么过呢_史蒂文森sun_新浪博客
  19. 中国天气预报数据API收集
  20. html制作qq会员页面,QQ会员页面导航.html

热门文章

  1. 数字经济下,银行线上场景化建设的服务颗粒度、用户忠诚度和生态融合度
  2. 服务器root权限安全策略配置
  3. windows10桌面_如何让Windows 10系统桌面变得更好看?
  4. 赶紧用微信查询一下你的身份证,是否有人盗用你信息!
  5. 【一步步学OpenGL 39】 -《模型轮廓识别检测[阴影锥1]》
  6. 关于windows10在学习爬虫是用到appium配置java的jdk出现了,javac不是内部命令的解决方法(¥57)
  7. iOS -- 第三方登录之微信登录 (Swift代码)
  8. 和风天气获取天气情况
  9. java实现文字识别营业执照识别(百度、讯飞)
  10. 失眠的岁月,我们都交了哪些科技智商税?