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](https://color-art.netlify.app). ## Usage ### Add Dependency ```toml [dependencies] color-art = "0.3" ``` ### Color generator #### Create color from string 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::from_str("rgb(255, 255, 0)").unwrap(); let color = Color::from_str("rgba(255, 255, 0, 0.5)").unwrap(); let color = Color::from_str("#ffff00").unwrap(); let color = Color::from_str("hsl(60, 100%, 50%)").unwrap(); let color = Color::from_str("hsla(60, 100%, 50%, 0.6)").unwrap(); let color = Color::from_str("hsv(60, 100%, 100%)").unwrap(); let color = Color::from_str("hsi(60, 100%, 66.67%)").unwrap(); let color = Color::from_str("hwb(60, 0%, 0%)").unwrap(); let color = Color::from_str("cmyk(0%, 0%, 100%, 0%)").unwrap(); let color = Color::from_str("xyz(0.769975, 0.927808, 0.138526)").unwrap(); let color = Color::from_str("yiq(0.886, 0.32126, -0.31114)").unwrap(); let color = Color::from_str("yuv(0.886, -0.4359, 0.1)").unwrap(); let color = Color::from_str("YCbCr(225.93, 0.5755, 148.7269)").unwrap(); let color = Color::from_str("lab(97.14, -21.55, 94.48)").unwrap(); let color = Color::from_str("yellow").unwrap(); ```
#### Create color from number You can use the `from_num` method to construct a color from a number. For example: ```rust use color_art::Color; let color = Color::from_num(16776960).unwrap(); let color = Color::from_num(0xffff00).unwrap(); ``` #### Create color from name You can use the `from_name` method to construct a color from a name. For example: ```rust use color_art::Color; let color = Color::from_name("yellow").unwrap(); ``` #### Create color from color space You can use the `from_` method to construct a color from a color space. Currently supported color spaces: - `rgb` - `rgba` - `hsl` - `hsv` - `cmyk` - `hex` More color spaces will be supported in the future. For example: ```rust use color_art::Color; let color = Color::from_rgb(255, 255, 0).unwrap(); let color = Color::from_rgba(255, 255, 0, 0.5).unwrap(); let color = Color::from_hsl(60.0, 1.0, 0.5).unwrap(); let color = Color::from_hsv(60.0, 1.0, 1.0).unwrap(); let color = Color::from_cmyk(0.0, 0.0, 1.0, 0.0).unwrap(); let color = Color::from_hex("#ffff00").unwrap(); ``` More examples can be found in [Construct from color spaces](https://color-art.netlify.app/construct-a-color/from-space). #### Other color generator methods - [random](./docs/color_generator.md#random) - Generate a random color. - [mix](./docs/color_generator.md#mix) - Mix two colors. - [blend](./docs/color_generator.md#blend) - Blend two colors with a blending mode. - [average](./docs/color_generator.md#average) - Average a list of colors. ### Color conversion #### Stringify a color Stringify a color to a string. > Refer to [Construct from string](https://color-art.netlify.app/construct-a-color/from-string.html). ### Color Channels Extract the color channels. > Refer to [Color Channels](https://color-art.netlify.app/api/channels.html). ### Color Operations Color operation functions. > Refer to [Color Operations](https://color-art.netlify.app/api/operations.html). --- Made with ❤️ by [JiatLn](https://github.com/JiatLn). ## License [MIT](./LICENSE) License © 2022-Present [JiatLn](https://github.com/JiatLn)