2次发布
0.1.1 | 2021年11月4日 |
---|---|
0.1.0 | 2021年10月21日 |
#246 在 图形API
87 每月下载量
在 4 包 中使用
11KB
121 行
rgb2ansi256
rgb2ansi256 是一个小的Rust库,用于将RGB 24位颜色转换为ANSI 256 (8位) 颜色代码,零依赖,并使用const fn
。此包是从 ansi_colours C库v1.0.4移植过来的。
通过移植库,我们有两个好处
- 无不安全性
- 编译时计算(无运行时开销)
use rgb2ansi256::rgb_to_ansi256;
const MEDIUM_SPRING_GREEN: u8 = rgb_to_ansi256(0, 255, 175);
assert_eq!(MEDIUM_SPRING_GREEN, 49);
以下是转换前后的比较。
左侧窗口是支持24位颜色(真彩色)的iTerm2。右侧窗口是只支持8位颜色的Terminal.app。转换可以很好地在8位颜色中重现24位颜色。
安装
将此包添加到您的 Cargo.toml
。
[dependencies]
rgb2ansi = "0.1"
基准测试
这是微基准测试套件的结果。rgb2ansi256比ansi_colours稍微快一些。
rgb2ansi256 time: [150.58 us 151.06 us 151.55 us]
change: [-1.2657% -0.9774% -0.6991%] (p = 0.00 < 0.05)
Change within noise threshold.
Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) low mild
4 (4.00%) high mild
ansi_colours time: [158.07 us 158.83 us 159.64 us]
change: [-1.3717% -0.7338% -0.1909%] (p = 0.02 < 0.05)
Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
3 (3.00%) low mild
8 (8.00%) high mild
1 (1.00%) high severe
- 机器:iMac(Retina 5K,27英寸,2020年)
- ansi_colours:v1.0.4
- rustc:1.56(稳定版)
许可
继承自原始C库,此库根据LGPL-3.0许可分发。