pub struct Luv {
pub l: f32,
pub u: f32,
pub v: f32,
}
Expand description
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§
source§impl Luv
impl Luv
sourcepub fn from_rgb(rgb: &[u8; 3]) -> Self
pub fn from_rgb(rgb: &[u8; 3]) -> Self
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.98639, v: 7.8476787 }, luv);
sourcepub fn from_rgba(rgba: &[u8; 4]) -> Self
pub fn from_rgba(rgba: &[u8; 4]) -> Self
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.98639, v: 7.8476787 }, luv);
sourcepub fn to_rgb(&self) -> [u8; 3]
pub fn to_rgb(&self) -> [u8; 3]
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());
sourcepub fn squared_distance(&self, other: &Luv) -> f32
pub fn squared_distance(&self, other: &Luv) -> f32
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));