Struct palette::Rgb [] [src]

pub struct Rgb<T: Float = f32> {
    pub red: T,
    pub green: T,
    pub blue: T,
}

Linear RGB.

RGB is probably the most common color space, when it comes to computer graphics, and it's defined as an additive mixture of red, green and blue light, where gray scale colors are created when these three channels are equal in strength. This particular RGB type is based on the ITU-R BT.709 primaries, which makes it a linear version of sRGB.

Conversions and operations on this color space assumes that it's linear, meaning that gamma correction is required when converting to and from a displayable RGB, such as sRGB. See the pixel module for encoding types.

Fields

red: T

The amount of red light, where 0.0 is no red light and 1.0 is the highest displayable amount.

green: T

The amount of green light, where 0.0 is no green light and 1.0 is the highest displayable amount.

blue: T

The amount of blue light, where 0.0 is no blue light and 1.0 is the highest displayable amount.

Methods

impl<T: Float> Rgb<T>
[src]

fn new(red: T, green: T, blue: T) -> Rgb<T>

Linear RGB.

fn new_u8(red: u8, green: u8, blue: u8) -> Rgb<T>

Linear RGB from 8 bit values.

fn from_pixel<P: RgbPixel<T>>(pixel: &P) -> Rgb<T>

Linear RGB from a linear pixel value.

fn to_pixel<P: RgbPixel<T>>(&self) -> P

Convert to a linear RGB pixel. Rgb is already assumed to be linear, so the components will just be clamped to [0.0, 1.0] before conversion.

use palette::Rgb;

let c = Rgb::new(0.5, 0.3, 0.1);
assert_eq!((c.red, c.green, c.blue), c.to_pixel());
assert_eq!((0.5, 0.3, 0.1), c.to_pixel());

Trait Implementations

impl<T: PartialEq + Float> PartialEq for Rgb<T>
[src]

fn eq(&self, __arg_0: &Rgb<T>) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, __arg_0: &Rgb<T>) -> bool

This method tests for !=.

impl<T: Debug + Float> Debug for Rgb<T>
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl<T: Copy + Float> Copy for Rgb<T>
[src]

impl<T: Clone + Float> Clone for Rgb<T>
[src]

fn clone(&self) -> Rgb<T>

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more

impl<T: Float> Limited for Rgb<T>
[src]

fn is_valid(&self) -> bool

Check if the color's components are within the expected ranges.

fn clamp(&self) -> Rgb<T>

Return a new color where the components has been clamped to the nearest valid values. Read more

fn clamp_self(&mut self)

Clamp the color's components to the nearest valid values.

impl<T: Float> Mix for Rgb<T>
[src]

type Scalar = T

The type of the mixing factor.

fn mix(&self, other: &Rgb<T>, factor: T) -> Rgb<T>

Mix the color with an other color, by factor. Read more

impl<T: Float> Shade for Rgb<T>
[src]

type Scalar = T

The type of the lighten/darken amount.

fn lighten(&self, amount: T) -> Rgb<T>

Lighten the color by amount.

fn darken(&self, amount: Self::Scalar) -> Self

Darken the color by amount.

impl<T: Float> GetHue for Rgb<T>
[src]

type Hue = RgbHue<T>

The kind of hue unit this color space uses. Read more

fn get_hue(&self) -> Option<RgbHue<T>>

Calculate a hue if possible. Read more

impl<T: Float> Default for Rgb<T>
[src]

fn default() -> Rgb<T>

Returns the "default value" for a type. Read more

impl<T: Float> Add<Rgb<T>> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the + operator

fn add(self, other: Rgb<T>) -> Rgb<T>

The method for the + operator

impl<T: Float> Add<T> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the + operator

fn add(self, c: T) -> Rgb<T>

The method for the + operator

impl<T: Float> Sub<Rgb<T>> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the - operator

fn sub(self, other: Rgb<T>) -> Rgb<T>

The method for the - operator

impl<T: Float> Sub<T> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the - operator

fn sub(self, c: T) -> Rgb<T>

The method for the - operator

impl<T: Float> Mul<Rgb<T>> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the * operator

fn mul(self, other: Rgb<T>) -> Rgb<T>

The method for the * operator

impl<T: Float> Mul<T> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the * operator

fn mul(self, c: T) -> Rgb<T>

The method for the * operator

impl<T: Float> Div<Rgb<T>> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the / operator

fn div(self, other: Rgb<T>) -> Rgb<T>

The method for the / operator

impl<T: Float> Div<T> for Rgb<T>
[src]

type Output = Rgb<T>

The resulting type after applying the / operator

fn div(self, c: T) -> Rgb<T>

The method for the / operator

impl<T: Float> From<Color<T>> for Rgb<T>
[src]

fn from(color: Color<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Rgb<T>, T>> for Rgb<T>
[src]

fn from(color: Alpha<Rgb<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Xyz<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Xyz<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Luma<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Luma<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Lab<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Lab<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Lch<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Lch<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Hsv<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Hsv<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Hsl<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Hsl<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Alpha<Color<T>, T>> for Rgb<T>
[src]

fn from(other: Alpha<Color<T>, T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Luma<T>> for Rgb<T>
[src]

fn from(luma: Luma<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Xyz<T>> for Rgb<T>
[src]

fn from(xyz: Xyz<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Lab<T>> for Rgb<T>
[src]

fn from(lab: Lab<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Lch<T>> for Rgb<T>
[src]

fn from(lch: Lch<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Hsv<T>> for Rgb<T>
[src]

fn from(hsv: Hsv<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Hsl<T>> for Rgb<T>
[src]

fn from(hsl: Hsl<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<Srgb<T>> for Rgb<T>
[src]

fn from(srgb: Srgb<T>) -> Rgb<T>

Performs the conversion.

impl<T: Float> From<GammaRgb<T>> for Rgb<T>
[src]

fn from(gamma_rgb: GammaRgb<T>) -> Rgb<T>

Performs the conversion.