ColorArt - A rust crate for working with colors and color spaces.

Color Art

A rust crate for working with colors and color spaces.

github crates.io docs.rs


Documentation

See Color Art.

Usage

Add Dependency

toml [dependencies] color-art = "0.2"

Color generator

You can use the from_str method to construct a color from a string.

Currently supported color formats:

For example:

```rust use color_art::Color; use std::str::FromStr;

let color = Color::fromstr("rgb(255, 255, 0)").unwrap(); let color = Color::fromstr("rgba(255, 255, 0, 0.5)").unwrap(); let color = Color::fromstr("#ffff00").unwrap(); let color = Color::fromstr("hsl(60, 100%, 50%)").unwrap(); let color = Color::fromstr("hsv(60, 100%, 100%)").unwrap(); let color = Color::fromstr("hwb(60, 0%, 0%)").unwrap(); let color = Color::fromstr("cmyk(0%, 0%, 100%, 0%)").unwrap(); let color = Color::fromstr("xyz(0.932231, 0.975339, 0.502949)").unwrap(); let color = Color::from_str("yellow").unwrap(); ```

Other color generator methods:

Color conversion

Stringify a color

Stringify a color to a string. You can use the hex, rgb, rgba, hsl, hsv, hwb, cmyk, xyz, name method to stringify a color to a string. For example:

```rust use color_art::Color; use std::str::FromStr;

let color = Color::from_str("#ffff00").unwrap(); color.hex(); // "#ffff00" color.rgb(); // "rgb(255, 255, 0)" color.rgba(); // "rgba(255, 255, 0, 1)" color.hsl(); // "hsl(60, 100%, 50%)" color.hsv(); // "hsv(60, 100%, 100%)" color.hwb(); // "hwb(60, 0%, 0%)" color.cmyk(); // "cmyk(0%, 0%, 100%, 0%)" color.xyz(); // "xyz(0.932231, 0.975339, 0.502949)" color.name(); // "yellow" ```

Color Channel

You can use the red, green, blue, alpha, hue, saturation, lightness, hsv_hue, hsv_saturation, hsv_value, luma, luminance method to extract the color channel.

```rust use color_art::Color; use std::str::FromStr;

let color = Color::from_str("#abcdef").unwrap();

color.red(); // 171 color.green(); // 205 color.blue(); // 239 color.alpha(); // 1.0

color.hue(); // 210.0 color.saturation(); // 0.68 color.lightness(); // 0.8

color.hsvhue(); // 210.0 color.hsvsaturation(); // 0.28 color.hsv_value(); // 0.94

color.luma(); // 0.59 color.luminance(); // 0.79 ```

Color Operation

More details, please refer to Color Operation.


Made with ❤️ by JiatLn.

License

MIT License © 2022-Present JiatLn