#颜色 #rgb #hsv #rogue-like #终端颜色 #调色板 #游戏开发

bracket-color

RGB和HSV颜色处理和实用工具,包括lerp和W3C命名颜色。Bracket-lib系列的一部分。

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 图像

Download history 889/week @ 2024-03-13 1322/week @ 2024-03-20 1242/week @ 2024-03-27 1503/week @ 2024-04-03 1288/week @ 2024-04-10 1297/week @ 2024-04-17 1272/week @ 2024-04-24 1166/week @ 2024-05-01 1199/week @ 2024-05-08 1165/week @ 2024-05-15 1351/week @ 2024-05-22 1371/week @ 2024-05-29 1293/week @ 2024-06-05 937/week @ 2024-06-12 1123/week @ 2024-06-19 1097/week @ 2024-06-26

4,657 每月下载量
用于 12 个crate(5个直接使用)

MIT 许可证

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.01.0
  • from_u8接受三个字节,从0255
  • 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