1 个不稳定版本
0.0.1 | 2021 年 6 月 27 日 |
---|
#15 in #hsv
48KB
1.5K SLoC
irospace
概要
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