color-art 0.2.11

A rust crate for working with colors and color spaces.
Documentation

Documentation

See Color Art.

Usage

Add Dependency

[dependencies]

color-art = "0.2"

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
  • hwb
  • cmyk
  • xyz
  • yuv
  • YCbCr
  • lab
  • named color from w3cx11

For example:

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("hwb(60, 0%, 0%)").unwrap();
let color = Color::from_str("cmyk(0%, 0%, 100%, 0%)").unwrap();
let color = Color::from_str("xyz(0.932231, 0.975339, 0.502949)").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:

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:

use color_art::Color;

let color = Color::from_name("yellow").unwrap();

Create color from color space

You can use the from_<color_space> method to construct a color from a color space.

Currently supported color spaces:

  • rgb
  • rgba
  • hsl
  • hsv
  • cmyk
  • hex

For example:

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();

Other color generator methods

  • random - Generate a random color.
  • mix - Mix two colors.
  • blend - Blend two colors with a blending mode.
  • average - Average a list of colors.

Color conversion

Stringify a color

Stringify a color to a string.

You can use the hex, rgb, rgba, hsl, hsla, hsv, hwb, cmyk, xyz, yuv, YCbCr, lab, name method to stringify a color to a string.

For example:

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.hsla(); // "hsl(60, 100%, 50%, 1)"
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.yuv(); // "yuv(0.886, -0.4359, 0.1)"
color.ycbcr(); // "YCbCr(225.93, 0.5755, 148.7269)"
color.name(); // "yellow"
color.lab(); // "lab(97.14, -21.55, 94.48)"

Color Channel

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

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.hsv_hue(); // 210.0
color.hsv_saturation(); // 0.28
color.hsv_value(); // 0.94

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

color.gray(); // 198.71

Color Operation

More details, please refer to Color Operation.


Made with ❤️ by JiatLn.

License

MIT License © 2022-Present JiatLn