1 个不稳定版本
0.1.0 | 2022年8月13日 |
---|
#1941 in 算法
每月 22 次下载
在 cliris 中使用
530KB
326 行
iris-lib
使用中值切分算法从像素或图像生成调色板。
用法
在您的 Cargo.toml 中包含 iris-lib
iris-lib = "0.1.0"
从像素创建调色板
use iris_lib::color_bucket::ColorBucket;
use iris_lib::color::Color;
fn main() {
let colors = vec![
Color { r: 255, g: 0, b: 0, a: 0 },
Color { r: 0, g: 255, b: 0, a: 0 },
Color { r: 0, g: 0, b: 255, a: 0 }
];
if let Some(mut bucket) = ColorBucket::from_pixels(colors) {
let palette = bucket.make_palette(3); // three iterations
println!("{:?}", palette);
};
}
结果
[Color { r: 255, g: 0, b: 0, a: 0 },
Color { r: 0, g: 255, b: 0, a: 0 },
Color { r: 0, g: 0, b: 255, a: 0 }]
图像
在您的 Cargo.toml
中包含 image
功能。
iris-lib = { version = "0.1.0", features = ["image"]}
通过传递目标图像的路径创建调色板
use iris_lib::color_bucket::ColorBucket;
fn main() {
if let Some(mut bucket) = ColorBucket::from_image("peppers.png") {
let palette = bucket.make_palette(2); // two iterations
println!("{:?}", palette);
};
}
结果
[Color { r: 165, g: 197, b: 124, a: 255 },
Color { r: 144, g: 172, b: 74, a: 255 },
Color { r: 192, g: 51, b: 42, a: 255 },
Color { r: 97, g: 42, b: 25, a: 255 }]
命令行工具
查看基于此库构建的命令行工具 iris。
依赖关系
~0–2.8MB
~11K SLoC