做带用户系统的产品时,头像是个绕不过去的问题。让用户自己上传,十个有八个懒得弄;准备一套默认头像,用户多了难免撞头像;直接接 Gravatar 等第三方服务,又面临邮箱隐私泄露风险。

核心诉求就一个:让每个用户自动拥有好看、不重复、稳定的头像,不折腾用户,不暴露隐私。
DiceBear:一行代码搞定用户头像
DiceBear 能把任意字符串(用户名、用户 ID、邮箱等)转成一张 SVG 矢量头像,同一个输入永远出同一张图。不用存图片文件,不用写上传接口,不依赖外部服务。

52 种头像风格
Identicon、Initials 等极简风适合企业后台;Lorelei、Adventurer、Avataaars 等插画人物风适合社交产品;Pixel Art 像素风、Voxel Art 体素风覆盖游戏场景。很多风格还支持 Animated 动画版本。

6 种编程语言原生支持
JavaScript、PHP、Python、Rust、Go、Dart,每种语言都是原生实现,共享同一套测试用例,输出字节级一致的 SVG。前端 JS 生成和后端 Go 生成的文件完全一样。

纯 SVG 输出
单个头像仅几 KB,不占存储不耗算,矢量格式还能用 CSS 改颜色、加滤镜。数据完全不出服务器,也可 Docker 自建 API 服务。

部署方式
三种方式任选:
- HTTP API:拼个 URL 就能用,如
https://api.dicebear.com/10.x/lorelei/svg?seed=Felix - 本地库集成:JS(npm)、PHP(composer)、Python(pip)、Go(go get)
- Docker 自建:一个容器跑起来,数据合规无忧

前端接入
支持 React、Vue、Svelte、Angular、Next.js 等主流框架。原生 JS 用法:
import { Style, Avatar } from '@dicebear/core';
import lorelei from '@dicebear/styles/lorelei.json' with { type: 'json' };
const style = new Style(lorelei);
const avatar = new Avatar(style, { seed: 'John', size: 128 });
avatar.toDataUri();

后端使用
PHP、Python、Rust、Go、Dart 五种后端语言 API 设计保持一致。用户注册接口中拿到用户 ID 后直接调用即可,无需额外逻辑。

总结
DiceBear 用一行代码解决用户头像问题——不折腾用户、不泄露隐私、不耗服务器资源。52 种风格覆盖从企业后台到社交产品的各种场景,6 种语言原生支持让前后端都能轻松接入。
开源地址:github.com/dicebear/dicebear