形状
文字色
—显示字符
—FNV-1a 哈希
—底色
拿来做什么
后台列表、评论区、匿名投票这类地方,头像往往只需要一个「能认出是同一用户」的标记,字母头像比空白图片和默认小丑图都合适。
输入邮箱时取 @ 前的部分生成字母(firstname.j → FJ),输入普通字符串时取前两个字符;大小写、空格、. _ + - 都会被归一化,所以 Alice 与 alice 结果一致。
稳定是怎么做到的
底色由归一化字符串的 FNV-1a 32 位哈希决定,同一输入永远得到同一张头像,不依赖网络与随机数。
「随机换一个」只是往输入框里塞一个随机字符串再照常计算 —— 你把那个字符串记下来,下次打开本页会得到完全相同的头像。
隐私
整张图在你的浏览器里用 canvas 画出,不发任何请求,也不连接 Gravatar 之类的头像服务。
复制到剪贴板依赖 Clipboard API,需要 HTTPS 或 localhost 环境以及浏览器授权;不支持时会自动改为下载 PNG 并提示,不影响使用。
常见问题
和 Gravatar 有什么区别?
Gravatar 是把邮箱哈希后发给第三方服务换取图片,需要联网且会把邮箱暴露给那个服务。这里所有计算都在本地完成,不产生任何网络请求。
为什么我的头像颜色每次都一样?
这是刻意的:同一输入必须得到同一张图,否则用户列表每次刷新颜色都在跳。想换颜色就点「随机换一个」,或直接在输入框里填别的字符串。
生成的中文名字会怎样?
直接取前两个字符,中文本身就是单字,渲染效果与英文字母一致,不会有编码问题。字母始终按大写显示。