6个版本
| 0.8.7 | 2022年10月4日 |
|---|---|
| 0.8.2 | 2021年2月10日 |
| 0.8.1 | 2020年4月29日 |
| 0.7.0 | 2020年2月22日 |
| 0.1.0 | 2020年2月21日 |
#612 in 图像
4,657 每月下载量
用于 12 个crate(5个直接使用)
135KB
3.5K SLoC
bracket-color
这个crate为在bracket-terminal系统中使用提供了一个颜色系统。它是整体bracket-lib系统的一部分。
使用bracket-color
要获取bracket-color,请在您的Cargo.toml文件中包含以下内容
[dependencies]
bracket-color = "~0.8"
RGB
基本结构是RGB,它将颜色表示为红/绿/蓝组件。您可以通过多种方式构建颜色
new()提供一个黑色(所有零)条目。from_f32接受三个浮点数,从0.0到1.0。from_u8接受三个字节,从0到255。named接受一个浮点数元组,有大量预定义的颜色可供选择。(例如,RGB::named(RED))。from_hex接受一个HTML/CSS样式的十六进制数并将其转换为(例如,RGB::from_hex("#aabbcc")))。
您还可以转换RGB结构
- 支持在单个浮点数和另一个RGB结构之间进行加、减、乘和除操作。
to_hsv创建一个色调-饱和度-值颜色。to_greyscale使用标准的灰度运算来对颜色进行灰度近似。desaturate通过将颜色转换为HSV并降低饱和度来更好地进行灰度转换。lerp允许你在RGB空间中平滑地在两种颜色之间过渡。
HSV
HSV系统在HSV空间中提供颜色支持。你可以如下构建一个HSV颜色:
new()创建一个所有值为零的HSV颜色。from_f32允许你指定HSV为浮点数。RGB::to_hsv将RGB颜色转换为HSV颜色。
你也可以使用to_rgb回到RGB。
ColorPair
ColorPair 是一个简单的辅助结构,它包含前景和背景。
导出
所有内容都通过bracket_color::prelude 命名空间进行导出。
特性标志
- 如果你启用了
serde特性标志,RGB、HSV和ColorPair结构将派生为Serde可序列化/反序列化。 rex特性标志启用RexPaint支持。palette特性标志启用一个静态(线程安全)的调色板映射,将命名颜色链接到颜色。默认为空(add_named_colors_to_palette为你添加了所有常量命名颜色,全部小写)。- 如果你启用了
bevy特性,则启用了Bevy的Color类型和bracket-color类型之间的转换。
示例
有一些示例可以帮助你入门。它们使用crossterm进行终端输出。你可以使用以下命令运行示例:cargo run --example <name>。
lerp是一个简单的颜色lerp。lerpit是基于迭代器的lerp。lerpit_hsv是HSV lerp。named_colors展示了如何访问命名颜色。shades_of_grey展示了灰度和去饱和度函数。colors展示了获取颜色的各种方式。
依赖项
~0–18MB
~217K SLoC