canvas+gif.js打造自己的数字雨头像
前言
昨天 是1024程序员节,不知道各位看官过的怎么样。既然是过节,就要有个过节的样子,比方说,换个头像😀。你看我的头像牛逼不。今天介绍一个小demo,上传一个静态头像,就能得到一个动态的数字雨头像。抢先体验传送门](https://imgss.github.io/demo/gif/)
使用说明
-
传一个你喜欢的头像,最好是正方形的
-
生成后看字符颜色是不是太诡异,如果是,可以调整一下字符颜色
-
觉得满意,右键另存为或者点击下载即可
gif.js
今天的主角是gif.js,gif.js是一个在浏览器上依靠H5api就能gif动画的库,这里介绍一下我猜的坑。关于绘制数字雨,园子里有相关文章,我就不瞎BB了。
gif.js可以很方便的根据canvas动图得到gif:
//代码来自官网
var gif = new GIF({
workers: 2,//启用两个worker。
quality: 10//图像质量
});//创建一个GIF实例
// 核心方法,向gif中加一帧图像,参数可以是img/canvas元素,还可以从ctx中复制一帧
gif.addFrame(imageElement);
// or a canvas element
gif.addFrame(canvasElement, {delay: 200});//一帧时长是200
// or copy the pixels from a canvas context
gif.addFrame(ctx, {copy: true});
gif.on('finished', function(blob) {//最后生成一个blob对象
window.open(URL.createObjectURL(blob));
});
gif.render();//开始启动
整体而言,这个库的api十分简洁,友好。之前看了一个jsGif,看的云里雾里,后来才发现这么个好东西。由于生成gif图像是个耗费cpu的操作,尤其是当图像比较大的时候,因此库允许在webworker中渲染。但是文档中还是有几个要注意的地方要说明(其实是我踩的坑):
- git.addFrame是添加一帧,要生成会动的gif,要来一个循环:
for(...){
gif.render(...)
}
- 构造函数GIF的选项中,需要workerScript选项,这样才能实现在worker中渲染图像,如下所示:
var gif = new GIF({
workers: 2,
quality: 10,
workerScript:'./gif.worker.js'
});
源码我放在github上了,https://github.com/imgss/gif_rain_code,或者F12直接看demo。喜欢的话,请给我一个star,那我就要开心死了.
cnblogs-md-editor编辑器,用Markdown写博客就用它
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具