4 个版本

0.3.3 2022 年 8 月 2 日
0.3.2 2022 年 8 月 2 日
0.3.1 2022 年 7 月 31 日
0.2.0 2022 年 7 月 29 日
0.1.0 2022 年 7 月 29 日

算法 中排名 1897

MIT 许可证

46KB
858 行(不包括注释)

octarine

将颜色转换为多种常见的颜色表示形式(例如 RGB、HSL、HSV)并执行简单的颜色操作。感谢 colourcolors.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