Skip to main content

Crate multiavatar

Crate multiavatar 

Source
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 写文件(指定边长)。