pub struct Oklab;
Expand description
🌌 The Oklab color space, intended to be a perceptually uniform color space.
Its components are [L, a, b]
with
L
- the lightness with a natural bound between 0 and 1, where 0 represents pure black and 1 represents the lightness of white;a
- how green/red the color is; andb
- how blue/yellow the color is.
a
and b
are unbounded, but are usually between -0.5 and 0.5.
This corresponds to the color space in CSS Color Module Level 4 § 9.2 . It is defined on Björn Ottosson’s blog. It is similar to the CIELAB color space but with improved hue constancy.
Oklab has a cylindrical counterpart: Oklch.
Trait Implementations§
Source§impl ColorSpace for Oklab
impl ColorSpace for Oklab
Source§const TAG: Option<ColorSpaceTag>
const TAG: Option<ColorSpaceTag>
The tag corresponding to this color space, if a matching tag exists.
Source§const WHITE_COMPONENTS: [f32; 3]
const WHITE_COMPONENTS: [f32; 3]
The component values for the color white within this color space.
Source§fn to_linear_srgb(src: [f32; 3]) -> [f32; 3]
fn to_linear_srgb(src: [f32; 3]) -> [f32; 3]
Convert an opaque color to linear sRGB. Read more
Source§fn from_linear_srgb(src: [f32; 3]) -> [f32; 3]
fn from_linear_srgb(src: [f32; 3]) -> [f32; 3]
Convert an opaque color from linear sRGB. Read more
Source§fn scale_chroma([l, a, b]: [f32; 3], scale: f32) -> [f32; 3]
fn scale_chroma([l, a, b]: [f32; 3], scale: f32) -> [f32; 3]
Scale the chroma by the given amount. Read more
Source§fn convert<TargetCS: ColorSpace>(src: [f32; 3]) -> [f32; 3]
fn convert<TargetCS: ColorSpace>(src: [f32; 3]) -> [f32; 3]
Convert to a different color space. Read more
Source§fn clip([l, a, b]: [f32; 3]) -> [f32; 3]
fn clip([l, a, b]: [f32; 3]) -> [f32; 3]
Clip the color’s components to fit within the natural gamut of the color space. Read more
Source§const LAYOUT: ColorSpaceLayout = ColorSpaceLayout::Rectangular
const LAYOUT: ColorSpaceLayout = ColorSpaceLayout::Rectangular
The layout of the color space. Read more
Source§const WHITE_POINT: Chromaticity = Chromaticity::D65
const WHITE_POINT: Chromaticity = Chromaticity::D65
The white point of the color space. Read more
Source§fn to_linear_srgb_absolute(src: [f32; 3]) -> [f32; 3]
fn to_linear_srgb_absolute(src: [f32; 3]) -> [f32; 3]
Convert an opaque color to linear sRGB, without chromatic adaptation. Read more
Source§fn from_linear_srgb_absolute(src: [f32; 3]) -> [f32; 3]
fn from_linear_srgb_absolute(src: [f32; 3]) -> [f32; 3]
Convert an opaque color from linear sRGB, without chromatic adaptation. Read more
Source§fn convert_absolute<TargetCS: ColorSpace>(src: [f32; 3]) -> [f32; 3]
fn convert_absolute<TargetCS: ColorSpace>(src: [f32; 3]) -> [f32; 3]
Convert to a different color space, without chromatic adaptation. Read more
Source§fn chromatically_adapt(
src: [f32; 3],
from: Chromaticity,
to: Chromaticity,
) -> [f32; 3]
fn chromatically_adapt( src: [f32; 3], from: Chromaticity, to: Chromaticity, ) -> [f32; 3]
Chromatically adapt the color between the given white point chromaticities. Read more
Source§impl From<Oklab> for ColorSpaceTag
impl From<Oklab> for ColorSpaceTag
impl Copy for Oklab
Auto Trait Implementations§
impl Freeze for Oklab
impl RefUnwindSafe for Oklab
impl Send for Oklab
impl Sync for Oklab
impl Unpin for Oklab
impl UnwindSafe for Oklab
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more