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 图像
每月348次下载
在 ansi_colours 中使用
53KB
765 行
Empfindung - 在 Rust 中量化颜色差异
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定义了lab
和rgb
功能,默认启用。前者添加对lab
crate的依赖,并允许函数接受lab::Lab
参数。后者添加对rgb
crate的依赖,并进一步允许函数接受rgb::RGB<u8>
参数。
关于
此crate最初由Elliot Jackson编写,后来由Michał Nazarewicz在长时间不活跃后分叉。除了包名更改外,它还是delta_e
crate的直接替换。
要从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