Struct luv::Luv [−][src]
Struct representing a color in CIALuv, a.k.a. L*u*v*, color space
Fields
l: f32
The L* value (achromatic luminance) of the colour in 0–100 range.
u: f32
The u* value of the colour.
Together with v* value, it defines chromaticity of the colour. The u* coordinate represents colour’s position on red-green axis with negative values indicating more red and positive more green colour. Typical values are in -100–100 range (but exact range for ‘valid’ colours depends on luminance and v* value).
v: f32
The u* value of the colour.
Together with u* value, it defines chromaticity of the colour. The v* coordinate represents colour’s position on blue-yellow axis with negative values indicating more blue and positive more yellow colour. Typical values are in -100–100 range (but exact range for ‘valid’ colours depends on luminance and u* value).
Implementations
impl Luv
[src]
impl Luv
[src]pub fn from_rgb(rgb: &[u8; 3]) -> Self
[src]
pub fn from_rgb(rgb: &[u8; 3]) -> Self
[src]Constructs a new Luv
from a three-element array of u8
s
Examples
let luv = luv::Luv::from_rgb(&[240, 33, 95]); assert_eq!(luv::Luv { l: 52.334686, u: 138.98636, v: 7.8476787 }, luv);
pub fn from_rgba(rgba: &[u8; 4]) -> Self
[src]
pub fn from_rgba(rgba: &[u8; 4]) -> Self
[src]Constructs a new Luv
from a four-element array of u8
s
The Luv
struct does not store alpha channel information, so the last
u8
representing alpha is discarded. This convenience method exists
in order to easily measure colors already stored in an RGBA array.
Examples
let luv = luv::Luv::from_rgba(&[240, 33, 95, 255]); assert_eq!(luv::Luv { l: 52.334686, u: 138.98636, v: 7.8476787 }, luv);
pub fn to_rgb(&self) -> [u8; 3]
[src]
pub fn to_rgb(&self) -> [u8; 3]
[src]Returns the Luv
’s color in RGB, in a 3-element array.
Examples
let luv = luv::Luv { l: 52.334686, u: 138.98636, v: 7.8476787 }; assert_eq!([240, 33, 95], luv.to_rgb());
pub fn squared_distance(&self, other: &Luv) -> f32
[src]
pub fn squared_distance(&self, other: &Luv) -> f32
[src]Measures the perceptual distance between the colors of one Luv
and an other
.
Examples
let pink = luv::Luv { l: 52.334686, u: 138.98636, v: 7.8476787 }; let websafe_pink = luv::Luv { l: 56.675262, u: 142.3089, v: 10.548637 }; assert_eq!(37.175053, pink.squared_distance(&websafe_pink));
Trait Implementations
impl Copy for Luv
[src]
Auto Trait Implementations
impl RefUnwindSafe for Luv
impl Send for Luv
impl Sync for Luv
impl Unpin for Luv
impl UnwindSafe for Luv
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more