Expand description
§dominant-colors
使用三种经典算法从图片中提取主色调:
- K-Means 聚类 — 基于质心的迭代式颜色量化
- 中位切分(Median Cut) — 沿最长轴递归划分颜色空间
- 八叉树量化(Octree) — 对 RGB 立方体进行层次化空间细分
§快速上手
use dominant_colors::{DominantColors, Algorithm, Config};
// 加载图片,用 K-Means 提取 5 种主色调
let img = image::open("photo.jpg").unwrap();
let palette = DominantColors::new(img)
.config(Config::default().max_colors(5))
.extract(Algorithm::KMeans)
.unwrap();
for color in &palette {
println!("#{:02X}{:02X}{:02X} ({:.1}%)", color.r, color.g, color.b, color.percentage * 100.0);
}§算法对比
| 算法 | 速度 | 质量 | 确定性 |
|---|---|---|---|
| K-Means | 中等 | 高 | 否(可设种子) |
| Median Cut | 快 | 良 | 是 |
| Octree | 快 | 良 | 是 |
Modules§
- algorithms
- 主色调提取算法集合。
- wasm
- WebAssembly 绑定层。
Structs§
- Color
- 带有占比信息的 sRGB 颜色。
- Config
- 所有算法共用的配置项。
- Dominant
Colors - 主色调提取的构建器(Builder)。
Enums§
- Algorithm
- 主色调提取算法枚举。
- Dominant
Color Error - 主色调提取过程中所有可能的错误。
Type Aliases§
- Color
Palette - 主色调列表(有序)。
- Result
std::result::Result<T, DominantColorError>的便捷别名。