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]
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]
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