RKTK API Docs RKTK Home Repo

Struct LinearSrgb

Source
pub struct LinearSrgb {
    pub red: f32,
    pub green: f32,
    pub blue: f32,
}
Expand description

§Linear RGB Color Space

LinearSrgb represents colors in a linear RGB color space, where values are directly proportional to light intensity (not gamma-encoded).

§Color Space Properties

  • No Gamma Encoding: Values are linearly proportional to light intensity
  • RGB Primaries: Same as sRGB (IEC 61966-2-1)
  • White Point: D65 (6500K)

Mathematical operations on linear RGB values (like averaging or interpolation) will produce physically correct results, unlike operations on gamma-encoded sRGB values.

Fields§

§red: f32

Red component (0.0 to 1.0)

§green: f32

Green component (0.0 to 1.0)

§blue: f32

Blue component (0.0 to 1.0)

Implementations§

Source§

impl LinearSrgb

Source

pub fn new(red: f32, green: f32, blue: f32) -> LinearSrgb

Creates a new LinearSrgb color

§Arguments
  • red - Red component (0.0 to 1.0)
  • green - Green component (0.0 to 1.0)
  • blue - Blue component (0.0 to 1.0)
§Example
use blinksy::color::LinearSrgb;

let red = LinearSrgb::new(1.0, 0.0, 0.0);
Source

pub fn to_srgb(self) -> Srgb

Converts from linear RGB to sRGB color space

This applies gamma encoding to make the color values perceptually uniform.

Source

pub fn to_gamma_srgb(self, gamma: f32) -> GammaSrgb

Converts to gamma-encoded RGB using the specified gamma value

Source

pub fn to_led<C>( self, channels: LedChannels, brightness: f32, correction: ColorCorrection, ) -> LedColor<C>
where C: Component,

Converts to LED output color values

§Arguments
  • channels - The LED channel format specification
  • brightness - Global brightness scaling factor (0.0 to 1.0)
  • correction - Color correction factors for the LEDs
§Returns

A LedColor in the specified component type, ready for output to hardware

Trait Implementations§

Source§

impl Clone for LinearSrgb

Source§

fn clone(&self) -> LinearSrgb

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for LinearSrgb

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl FromColor<GammaSrgb> for LinearSrgb

Source§

fn from_color(color: GammaSrgb) -> LinearSrgb

Converts from the source color type
Source§

impl<M> FromColor<Hsv<M>> for LinearSrgb
where M: HsvHueMap,

Source§

fn from_color(color: Hsv<M>) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Lms> for LinearSrgb

Source§

fn from_color(color: Lms) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Okhsl> for LinearSrgb

Source§

fn from_color(color: Okhsl) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Okhsv> for LinearSrgb

Source§

fn from_color(color: Okhsv) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Oklab> for LinearSrgb

Source§

fn from_color(color: Oklab) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Srgb> for LinearSrgb

Source§

fn from_color(color: Srgb) -> LinearSrgb

Converts from the source color type
Source§

impl FromColor<Xyz> for LinearSrgb

Source§

fn from_color(color: Xyz) -> LinearSrgb

Converts from the source color type
Source§

impl PartialEq for LinearSrgb

Source§

fn eq(&self, other: &LinearSrgb) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for LinearSrgb

Source§

impl StructuralPartialEq for LinearSrgb

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromColor<T> for T

Source§

fn from_color(color: T) -> T

Converts from the source color type
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Converts into the target color type
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.