Skip to main content

Crate dominant_colors

Crate dominant_colors 

Source
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
所有算法共用的配置项。
DominantColors
主色调提取的构建器(Builder)。

Enums§

Algorithm
主色调提取算法枚举。
DominantColorError
主色调提取过程中所有可能的错误。

Type Aliases§

ColorPalette
主色调列表(有序)。
Result
std::result::Result<T, DominantColorError> 的便捷别名。