Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jiatln/color-art
A rust crate for working with colors and color spaces.
https://github.com/jiatln/color-art
color color-art colors colorspaces rust rust-library
Last synced: 20 days ago
JSON representation
A rust crate for working with colors and color spaces.
- Host: GitHub
- URL: https://github.com/jiatln/color-art
- Owner: JiatLn
- License: mit
- Created: 2022-12-13T13:48:17.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-31T04:15:22.000Z (8 months ago)
- Last Synced: 2024-10-14T01:27:53.322Z (about 1 month ago)
- Topics: color, color-art, colors, colorspaces, rust, rust-library
- Language: Rust
- Homepage: https://color-art.netlify.app
- Size: 277 KB
- Stars: 18
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Color Art
A rust crate for working with colors and color spaces.
## 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
-
rgb
/rgba
hex
-
hsl
/hsla
hsv
hsi
hwb
cmyk
xyz
yiq
yuv
YCbCr
lab
named color
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)