4 个版本
0.3.3 | 2022 年 8 月 2 日 |
---|---|
0.3.2 |
|
0.3.1 | 2022 年 7 月 31 日 |
0.2.0 | 2022 年 7 月 29 日 |
0.1.0 |
|
在 算法 中排名 1897
46KB
858 行(不包括注释)
octarine
将颜色转换为多种常见的颜色表示形式(例如 RGB、HSL、HSV)并执行简单的颜色操作。感谢 colour 和 colors.py 为本项目(包括 API 和文档)提供灵感。
注意
Color
使用 RGB 颜色模型存储颜色,将 R、G 和 B 值存储为 u8
。因此,从 HSL/HSV 转换到 Color
以及返回的结果可能不完全相同,因为缺乏精度。
use octarine::Color;
let to_hsl = Color::from_hsl(0.0, 0.0, 0.5).to_hsl();
assert_ne!((0.0, 0.0, 0.5), to_hsl);
let to_hsv = Color::from_hsv(0.0, 0.0, 0.5).to_hsv();
assert_ne!((0.0, 0.0, 0.5), to_hsv);
功能
- 极其简单的 API(主观)。
- 在 RGB、HSL、HSV、W3C 网页颜色和十六进制之间进行转换。
- 使用一个结构
Color
统一所有。 - 执行算术、混合模式并在范围内生成随机颜色。
- Octarine.
示例
use octarine::Color;
let color1 = Color::from_web_color("red");
let color2 = Color::new(255, 0, 0);
assert_eq!(color1, Some(color2.clone()));
let hex = Color::new(100, 100, 100).to_hex();
assert_eq!(hex, 0x646464);
let red = color2.get_red();
let green = color2.get_green();
let blue = color2.get_blue();
assert_eq!(color2.to_rgb(), (red, green, blue));
let hue = color2.get_hsl_hue();
let saturation = color2.get_hsl_saturation();
let luminance = color2.get_hsl_luminance();
assert_eq!(color2.to_hsl(), (hue, saturation, luminance));
let hue = color2.get_hsv_hue();
let saturation = color.get_hsv_saturation();
let value = color.get_hsv_value();
assert_eq!(color2.to_hsv(), (hue, saturation, value));
依赖项
~0.6–1.1MB
~24K SLoC