[−][src]Struct colorsys::Rgb
The RGB color model.
Has r (red), g (green), b(blue) and optional a(alpha channel) fields. Red, green, blue values are stored between 0.0 and 255.0, alpha is between 0.0 and 1.0. If inputed or recieved values are exceeds the allowed value, or is less than zero it will be equalize to limit.
Can be converted into (and from) other color models.
Example
use colorsys::{Rgb, Hsl, prelude::*}; let mut rgb1 = Rgb::from((100.0, 255.0, 17.0)); // Rgb { r: 100.0, g: 255.0, b: 17.0, a: None } let green = rgb1.get_green(); // 255.0 rgb1.set_red(108.3); // Rgb { r: 108.3, g: 255.0, b: 17.0, .. } let mut hsl: Hsl = rgb1.into(); // ~Hsl { h: 96.98, s: 100.0, l: 53.333, .. } hsl.saturate( SaturationInSpace::Hsl(-57.901) ); // ~Hsl { h: 96.98, s: 42.099, l: 53.333, .. } let mut rgb2 = Rgb::from(&hsl); // ~Rgb { r: 124.34, g: 186.1, b: 85.9, .. } let rgb2tuple: (f64,f64,f64) = rgb2.as_ref().into(); // (124.34, 186.1,85.9) rgb2 += Rgb::from_hex_str("#35f15b").unwrap();; // ~Rgb { r: 177.33, g: 255.0, b: 176.902, .. } rgb2.set_green(-150.0); assert_eq!(rgb2.get_green(), 0.0); rgb2.lighten(-13.123); // ~Rgb { r: 110.41, g: 0.0, b: 110.1, .. } rgb2.grayscale_simple(); // ~Rgb { r: 55.2, g: 55.2, b: 55.2, .. } let css_string = rgb2.to_css_string(); assert_eq!(css_string, "rgb(55,55,55)");
Methods
impl Rgb
[src]
pub fn new(r: f64, g: f64, b: f64, a: Option<f64>) -> Rgb
[src]
pub fn from_hex_str(s: &str) -> Result<Rgb, ParseError>
[src]
pub fn to_hex_string(&self) -> String
[src]
pub fn get_red(&self) -> f64
[src]
pub fn get_green(&self) -> f64
[src]
pub fn get_blue(&self) -> f64
[src]
pub fn set_red(&mut self, val: f64)
[src]
pub fn set_green(&mut self, val: f64)
[src]
pub fn set_blue(&mut self, val: f64)
[src]
pub fn to_css_string(&self) -> String
[src]
pub fn grayscale(&mut self, method: GrayScaleMethod)
[src]
pub fn iter(&self) -> ColorIter
[src]
Trait Implementations
impl ApproxEq<Rgb> for Hsl
[src]
fn approx_eq(&self, rgb: &Rgb) -> bool
[src]
fn approx_eq_clarify(&self, rgb: &Rgb, precision: f64) -> bool
[src]
impl ApproxEq<Rgb> for Rgb
[src]
fn approx_eq(&self, other: &Rgb) -> bool
[src]
fn approx_eq_clarify(&self, other: &Rgb, precision: f64) -> bool
[src]
impl ApproxEq<Hsl> for Rgb
[src]
fn approx_eq(&self, hsl: &Hsl) -> bool
[src]
fn approx_eq_clarify(&self, hsl: &Hsl, precision: f64) -> bool
[src]
impl ColorAlpha for Rgb
[src]
fn get_alpha(&self) -> f64
[src]
fn set_alpha(&mut self, val: f64)
[src]
fn opacify(&mut self, val: f64)
[src]
impl ColorTransform for Rgb
[src]
fn lighten(&mut self, amt: f64)
[src]
Lighten or darken color. amt is a percent with negative values - -100..100
Example
use colorsys::{Rgb,ColorTransform, ColorTuple}; let tuple = (30.0, 108.0, 77.0); let mut rgb = Rgb::from(&tuple); rgb.lighten(20.0); assert_eq!(rgb.to_css_string(), "rgb(52,188,134)" ); rgb.lighten(-20.0); assert_eq!(rgb.to_css_string(), "rgb(30,108,77)" ); rgb.lighten(-20.0); assert_eq!(rgb.to_css_string(), "rgb(8,28,20)" ); rgb.lighten(301.123); assert_eq!(rgb.to_css_string(), "rgb(255,255,255)" );
fn saturate(&mut self, sat: SaturationInSpace)
[src]
fn adjust_hue(&mut self, hue: f64)
[src]
fn grayscale_simple(&mut self)
[src]
fn invert(&mut self)
[src]
impl AsRef<Rgb> for Rgb
[src]
impl PartialEq<Rgb> for Rgb
[src]
impl Clone for Rgb
[src]
fn clone(&self) -> Rgb
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'_> From<&'_ Rgb> for Hsl
[src]
fn from(rgb: &Rgb) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let rgb = Rgb::from(&(215.0, 231.0, 236.0)); let hsl = Hsl::from(&rgb); assert_eq!(hsl.to_css_string(), "hsl(194,36,88)");
impl<'_> From<&'_ mut Rgb> for Hsl
[src]
fn from(rgb: &mut Rgb) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let mut rgb = Rgb::from(&(0.0, 0.0, 0.0)); let hsl_string = Hsl::from(&mut rgb).to_css_string(); assert_eq!(hsl_string, "hsl(0,0,0)");
impl From<Rgb> for Hsl
[src]
fn from(rgb: Rgb) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let rgb = Rgb::from(&(255.0, 255.0, 255.0)); let hsl_string = Hsl::from(rgb).to_css_string(); assert_eq!(hsl_string, "hsl(0,0,100)");
impl<'_> From<&'_ (f64, f64, f64)> for Rgb
[src]
fn from(t: &ColorTuple) -> Rgb
[src]
impl From<(f64, f64, f64)> for Rgb
[src]
fn from(t: ColorTuple) -> Rgb
[src]
impl<'_> From<&'_ (f64, f64, f64, f64)> for Rgb
[src]
fn from(t: &ColorTupleA) -> Rgb
[src]
impl From<(f64, f64, f64, f64)> for Rgb
[src]
fn from(t: ColorTupleA) -> Rgb
[src]
impl<'_> From<&'_ Hsl> for Rgb
[src]
fn from(hsl: &Hsl) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let hsl = Hsl::from(&(48.0, 70.0, 50.0)); let rgb: Rgb = Rgb::from(&hsl); assert_eq!(rgb.to_css_string(), "rgb(217,181,38)");
impl<'_> From<&'_ mut Hsl> for Rgb
[src]
fn from(hsl: &mut Hsl) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let mut hsl = Hsl::from(&(359.0, 33.0, 77.0)); let rgb_string = Rgb::from(&mut hsl).to_css_string(); assert_eq!(rgb_string, "rgb(216,177,178)");
impl From<Hsl> for Rgb
[src]
fn from(hsl: Hsl) -> Self
[src]
Example
use colorsys::{Rgb,Hsl,prelude::*}; let hsl = Hsl::from(&(192.0, 67.0, 28.0)); let rgb_string = Rgb::from(hsl).to_css_string(); assert_eq!(rgb_string, "rgb(24,100,119)");
impl Default for Rgb
[src]
impl<'a> Into<(f64, f64, f64)> for &'a Rgb
[src]
fn into(self) -> ColorTuple
[src]
impl<'a> Into<(f64, f64, f64)> for &'a mut Rgb
[src]
fn into(self) -> ColorTuple
[src]
impl Into<(f64, f64, f64)> for Rgb
[src]
fn into(self) -> ColorTuple
[src]
impl<'a> Into<(f64, f64, f64, f64)> for &'a Rgb
[src]
fn into(self) -> ColorTupleA
[src]
impl<'a> Into<(f64, f64, f64, f64)> for &'a mut Rgb
[src]
fn into(self) -> ColorTupleA
[src]
impl Into<(f64, f64, f64, f64)> for Rgb
[src]
fn into(self) -> ColorTupleA
[src]
impl<'a> IntoIterator for &'a Rgb
[src]
type Item = f64
The type of the elements being iterated over.
type IntoIter = ColorIter
Which kind of iterator are we turning this into?
fn into_iter(self) -> ColorIter
[src]
impl IntoIterator for Rgb
[src]
type Item = f64
The type of the elements being iterated over.
type IntoIter = ColorIter
Which kind of iterator are we turning this into?
fn into_iter(self) -> ColorIter
[src]
impl Debug for Rgb
[src]
impl Sub<Rgb> for Rgb
[src]
type Output = Rgb
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self
[src]
impl<'a> Sub<&'a Rgb> for &'a Rgb
[src]
type Output = Rgb
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Rgb
[src]
impl<'a> Sub<&'a mut Rgb> for &'a mut Rgb
[src]
type Output = Rgb
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Rgb
[src]
impl<'a> Add<&'a Rgb> for &'a Rgb
[src]
type Output = Rgb
The resulting type after applying the +
operator.
fn add(self, rhs: &Rgb) -> Rgb
[src]
impl<'a> Add<&'a mut Rgb> for &'a mut Rgb
[src]
type Output = Rgb
The resulting type after applying the +
operator.
fn add(self, rhs: &'a mut Rgb) -> Rgb
[src]
impl Add<Rgb> for Rgb
[src]
type Output = Rgb
The resulting type after applying the +
operator.
fn add(self, rhs: Self) -> Self
[src]
impl AddAssign<Rgb> for Rgb
[src]
fn add_assign(&mut self, rhs: Self)
[src]
impl SubAssign<Rgb> for Rgb
[src]
fn sub_assign(&mut self, rhs: Self)
[src]
impl FromStr for Rgb
[src]
type Err = ParseError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Rgb, ParseError>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,