Expand description
§multiavatar
多进制头像生成器(multiavatar.js → Java → Rust 全功能移植,零运行时依赖以外的核心逻辑)。
基于输入字符串的 SHA-256 哈希派生 12 位随机种子,映射 12 个环境/部件槽位, 从内置 12×16×3 主题部件库拼装成 SVG 头像,并可渲染为 PNG / JPEG / GIF / favicon zip / favicon.ico / PNG data URI。
设计:数据层(gzip 内嵌部件库)+ 核心层(哈希/映射/拼装/体积优化)+ SVG 领域层 (对象模型/解析/光栅化)+ 渲染策略层(策略模式,四格式编码器)+ 产物层 (不可变 Avatar + 惰性解析缓存)+ 门面(全局 LRU 缓存 + 全量 API)。
§快速上手
use multiavatar::*;
let svg = multiavatar("demon1110");
assert!(!svg.is_empty());
let png = to_png("demon1110"); // 256×256 PNG 字节
assert!(png.len() > 8); // PNG 魔数 8 字节
let uri = to_data_uri("demon1110");
assert!(uri.starts_with("data:image/png;base64,"));Modules§
- avatar
- 头像产物(不可变):封装输入字符串对应的 SVG 文本,并提供图像渲染能力。
- avatar_
cache - 头像 LRU 缓存:同参数重复生成免重复计算(容量 128)。
- avatar_
options - 头像生成选项(不可变),通过 AvatarOptions::builder 构建。
- core
- 核心装配流水线:哈希 → 部件编号 → 角色/主题 → 着色 → 拼装 → 优化。
- data
- 静态数据层:颜色主题 + SVG 部件模板。
- render
- 渲染策略层:格式枚举 + 渲染器接口 + 各格式编码器。
- svg
- SVG 领域层:对象模型 + 解析 + 光栅化前处理。
- util
- 工具函数。
Structs§
- Multiavatar
- 门面入口(等价 Java
Multiavatar)。
Functions§
- avatar
- 获取头像产物(缓存命中直接返回;未命中生成后入缓存)。
- avatar_
with - 获取头像产物(指定选项)。
- cache_
size - 当前缓存条目数。
- clear_
cache - 清空缓存。
- multiavatar
- 生成头像 SVG(自动派生随机种子)。
- multiavatar_
full - 生成头像 SVG,可强制角色与颜色主题。
- multiavatar_
with - 生成头像 SVG,可去掉环境部件(背景圆)。
- render
- 按格式渲染(统一策略入口)。
- to_
data_ uri - PNG data URI(默认尺寸 256):
data:image/png;base64,...;空输入返回空串。 - to_
data_ uri_ sized - PNG data URI(指定边长)。
- to_
data_ uri_ with - PNG data URI(指定选项)。
- to_
favicon_ ico - favicon 单文件 ICO 字节(默认尺寸 16/32/48/64/128/256,PNG 内嵌,Vista+ 直接支持)。
- to_
favicon_ ico_ sized - favicon 单文件 ICO 字节(指定尺寸集合;空集合用默认)。
- to_
favicon_ zip - favicon 多尺寸 PNG 打包为 zip 字节(默认尺寸 16/32/48/64/128/256)。
- to_
favicon_ zip_ sized - favicon 多尺寸 PNG 打包为 zip 字节(指定尺寸集合;空集合用默认)。
- to_gif
- GIF 动画字节(默认尺寸 256,部件逐帧淡入,无限循环);空输入返回空数组。
- to_
gif_ sized - GIF 动画字节(指定边长)。
- to_
gif_ with - GIF 动画字节(指定选项)。
- to_
image - 光栅化图像(默认尺寸 256,透明背景);空输入返回 None。
- to_
image_ sized - 光栅化图像(指定边长,透明背景)。
- to_
image_ smooth - 光栅化图像(4x 超采样抗锯齿):内部按
size×4分辨率渲染后再 双线性缩小到size,曲线边缘显著更平滑;透明背景。 - to_
image_ smooth_ with - 光栅化图像(可调超采样因子):
factor为内部渲染倍率,factor = 1等价普通渲染;factor = 4是平滑/成本的良好折中。 - to_
image_ with - 光栅化图像(指定选项)。
- to_jpg
- JPEG 字节(默认尺寸 256,白底);空输入返回空数组。
- to_
jpg_ sized - JPEG 字节(指定边长,白底)。
- to_
jpg_ smooth - JPEG 字节(4x 超采样抗锯齿,白底,默认边长 256)。
- to_
jpg_ smooth_ sized - JPEG 字节(4x 超采样抗锯齿,白底,指定边长)。
- to_
jpg_ with - JPEG 字节(指定选项,白底)。
- to_png
- PNG 字节(默认尺寸 256);空输入返回空数组。
- to_
png_ sized - PNG 字节(指定边长)。
- to_
png_ smooth - PNG 字节(4x 超采样抗锯齿,默认边长 256)。
- to_
png_ smooth_ sized - PNG 字节(4x 超采样抗锯齿,指定边长)。
- to_
png_ with - PNG 字节(指定选项)。
- write_
favicon_ ico - favicon ico 写文件(默认尺寸)。
- write_
favicon_ zip - favicon zip 写文件(默认尺寸)。
- write_
png - PNG 写文件(默认尺寸 256)。
- write_
png_ sized - PNG 写文件(指定边长)。