#color #conversion #rgb #color-space #hsv #hsl #html

irospace

颜色空间和转换方法

1 个不稳定版本

0.0.1 2021 年 6 月 27 日

#15 in #hsv

MIT 许可证

48KB
1.5K SLoC

irospace

MIT License

概要

irospace 是一个提供简单颜色空间和颜色空间转换处理的库。

功能

  • 颜色空间转换
  • 颜色代码(HTML 颜色代码)转换
  • 系统颜色(17 种)定义

支持颜色空间

  • RGB(RGBA)
  • HSV
  • HSL

支持颜色(17 种)

CSS22 颜色关键字定义了相同的颜色。

  • Aqua
  • Black
  • Blue,
  • Fuchsia
  • Gray
  • Green
  • Lime
  • Maroon
  • Navy
  • Olive
  • Orange
  • Purple
  • Red
  • Silver
  • Teal
  • White
  • Yellow

示例

RGB -> HSV 或 HSL

extern crate irospace;
use irospace::{colors::Colors,
    RgbColor,HsvColor,HslColor,
    converter::*,
    ColorConverterBuilder};

fn from_rgb_to_hsv()
{
    let rgb = RgbColor::new(255,0,0);
    let converter = ColorConverterBuilder::new().from_rgb().to_hsv().build();
    let hsv = converter.convert(&rgb).unwrap();
    // HsvColor H = 0 S = 100 V = 100 A = 255
}

fn from_rgb_to_hsl()
{
    let rgb = RgbColor::new(255,0,0);
    let converter = ColorConverterBuilder::new().from_rgb().to_hsl().build();
    let hsl = converter.convert(&rgb).unwrap();
    // HslColor H = 0 S = 100 L = 50 A = 255
}

HTML -> RGB 或 RGB -> HTML

extern crate irospace;
use irospace::{colors::Colors,
    RgbColor,HsvColor,HslColor,
    converter::*,
    ColorConverterBuilder};

fn from_html_to_rgb()
{
    let color_code = HtmlColorCode::new("#ff0000");
    let converter = ColorConverterBuilder::new().from_html().to_rgb().build();
    let rgb = converter.convert(&color_code).unwrap();
    println!("{}",rgb);
    // RgbColor R = 255 G = 0 B = 0 A = 255
}

fn from_rgb_to_html()
{
    let rgb = RgbColor::new(255,0,0);
    let converter = ColorConverterBuilder::new().from_rgb().to_html().build();
    let html = converter.convert(&rgb).unwrap();
    println!("{}",html.value_ref());
    // #ff0000
}

执行确认环境

  • cargo 1.46.0
  • rustc 1.46.0

许可证

MIT 许可证

无运行时依赖