#color #difference #delta #cie #color-space #graphics #quantify

empfindung

Empfindung 是 CIE Delta E 颜色差异算法的实现

5 个版本

0.2.6 2022年12月14日
0.2.5 2022年12月13日
0.2.4 2021年11月28日
0.2.3 2021年7月10日
0.2.2 2021年6月30日

#491 in 图像

Download history 47/week @ 2024-03-11 10/week @ 2024-03-18 63/week @ 2024-04-01 24/week @ 2024-04-08 111/week @ 2024-04-15 79/week @ 2024-04-22 77/week @ 2024-04-29 61/week @ 2024-05-06 71/week @ 2024-05-13 30/week @ 2024-05-20 57/week @ 2024-05-27 85/week @ 2024-06-03 100/week @ 2024-06-10 102/week @ 2024-06-17 57/week @ 2024-06-24

每月348次下载
ansi_colours 中使用

MIT 许可证

53KB
765

Empfindung - 在 Rust 中量化颜色差异

crates.io Docs License

Empfindung 是一个提供颜色差异算法实现的库。具体来说,基于 L*a*b* 颜色空间的距离,通常称为 ΔE*。 (这也是这个软件包名字的由来。‘E’ 代表德语的‘Empfindung’)。

该crate提供CIEDE2000,CIE94,CIE76和CMC l:c的实现。

安装

如果你使用Cargo,只需将DeltaE添加到你的Cargo.toml

[dependencies]
empfindung = "0.2"

示例

use empfindung::cie00;

fn main() {
    let colour_1 = lab::Lab { l: 38.972, a: 58.991, b: 37.138 };
    let colour_2 = lab::Lab { l: 54.528, a: 42.416, b: 54.497 };

    let empfindung = cie00::diff(colour_1, colour_2);
    println!("The colour difference is: {}", empfindung);

    let colour_1 = ( 38.972, 58.991, 37.138 );
    let colour_2 = ( 54.528, 42.416, 54.497 );

    let delta_e = cie76::diff(colour_1, colour_2);
    println!("The Euclidean distance is: {}", delta_e);
    assert_eq!(28.601656, delta_e);

    let colour_1 = rgb::RGB::<u8>::new(234, 76, 76);
    let colour_2 = rgb::RGB::<u8>::new(76, 187, 234);
    let delta_e = cie00::diff(colour_1, colour_2);
    println!("The CIEDE200 colour difference is: {}", delta_e);
    assert_eq!(58.90164, delta_e);
}

Crate 功能

该crate定义了labrgb功能,默认启用。前者添加对labcrate的依赖,并允许函数接受lab::Lab参数。后者添加对rgbcrate的依赖,并进一步允许函数接受rgb::RGB<u8>参数。

关于

此crate最初由Elliot Jackson编写,后来由Michał Nazarewicz在长时间不活跃后分叉。除了包名更改外,它还是delta_ecrate的直接替换。

要从delta_e快速迁移到empfindung,可以通过以下use声明执行

use empfindung as delta_e;

或更改路径以使用新的crate名称。特别是,如果使用use delta_e::DE2000;声明,只需将其替换为以下内容即可,而无需更改代码的其他部分

use empfindung::DE2000;  // was use delta_e::DE2000;

话虽如此,现在 DE2000 结构已被弃用,最好直接使用 empfindung::cie00::diff

许可证

Empfindung 采用 MIT 许可证发布,详见 LICENSE 文件

依赖项

~150KB