首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超火的渐变头像源码,直呼 “搜1Z?”

超火的渐变头像源码,直呼 “搜1Z?”

作者头像
程序猿石头
发布2021-10-14 15:24:33
6250
发布2021-10-14 15:24:33
举报
文章被收录于专栏:程序猿石头程序猿石头


大家好,我是石头哥。


国庆节期间,你也一定看到了超火的“渐变国旗头像”吧?


今天,就给大家分享自己 DIY 的工具以及源码。


朋友圈里下图这样的头像,你数数你朋友圈里有多少个?



制作方法很简单(点击文末阅读原文即可),上传图片,选择样式,保存图片即可。

<<< 左右滑动见更多 >>> 我稍微看了下,这其实背后的代码非常简单,直接纯前端即可完成。 前面还发现朋友圈有大佬制作了微信小程序可以一键获取微信头像,一键设置等很方便。(哈哈,本来开始石头哥也准备做一个,发现大佬已经做出来了,就懒得去折腾了) 比如这是我看到的一款网络普遍流传的在线工具的源码。 主要是用了 fabric.js 这个前端的库(官网:http://fabricjs.com/),将小挂件的图片和你的头像图片,直接用Canvas绘制即可。 Fabric.js is a powerful and simple Javascript HTML5 canvas library Fabric provides interactive object model on top of canvas element Fabric also has SVG-to-canvas (and canvas-to-SVG) parser 比如,我也依葫芦画瓢(其实就是复制粘贴)直接 DIY 了一款,收集了24个小挂件如下图所示:

核心代码其实就那么几行,页面定义 cavas 以及相关交互的按钮等:

然后就是用户交互后,改变 cavas 中的内容: function viewer() { var file = document.getElementById("upload").files[0]; var reader = new FileReader; if (file) { reader.readAsDataURL(file); reader.onload = function(e) { img.src = reader.result; img.onload = function() { img2Cvs(img) } } } else { img.src = "" } } function img2Cvs(img) { ... canvasFabric = new fabric.Canvas("cvs", { width: screenWidth, height: screenWidth, backgroundImage: new fabric.Image(img, { scaleX: screenWidth / img.width, scaleY: screenWidth / img.height }) }); changeHat(); } function changeHat() { ... if (hatInstance) { canvasFabric.remove(hatInstance) } hatInstance = new fabric.Image(hatImage, { top: 0, left: 0, scaleX: screenWidth / hatImage.width, scaleY: screenWidth / hatImage.height, cornerColor: "#0b3a42", cornerStrokeColor: "#fff", cornerStyle: "circle", transparentCorners: false, rotatingPointOffset: 30 }); canvasFabric.add(hatInstance) } 其实到这里也就结束了。你甚至还可以加点其他的页面元素进去。 这里再教大家一个方法能够快速复制并且 DIY 自己的页面,然后绑定自己的域名。 你只需要 fork 这个仓库:http://github.com/tl3shi/guoqing.coderstone.cn

DIY 上面的 index.html 换成自己的样式。可直接用 github 的 pages 服务绑定自己的域名。 项目根目录下新增一个文件名 CNAME,例如我的域名 guoqing.coderstone.cn 然后域名解析,新增一个 CNAME 指向 $id.github.io. 即可,例如我其中一个 github 账号 id 是tl3shi,这个时候记录值为 tl3shi.github.io.)

然后等生效就可以通过自己 DIY 的网址访问(阅读原文访问)啦:guoqing.coderstone.cn

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿石头 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档