#color-palette #color #image #quantization #cli

iris-lib

一个使用中值切分算法从图像创建调色板的库

1 个不稳定版本

0.1.0 2022年8月13日

#1941 in 算法

每月 22 次下载
cliris 中使用

MIT 许可证

530KB
326

iris-lib

build

使用中值切分算法从像素或图像生成调色板。

example_output_image

用法

在您的 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