Skip to main content

Color

Enum Color 

Source
pub enum Color {
    Process(ProcessColor),
    Spot(SpotColor),
}
Expand description

A color in a specific color space.

Variants§

§

Process(ProcessColor)

A process color.

§

Spot(SpotColor)

A spot color.

Implementations§

Source§

impl Color

Source

pub const BLACK: Self

Source

pub const GRAY: Self

Source

pub const WHITE: Self

Source

pub const SILVER: Self

Source

pub const NAVY: Self

Source

pub const BLUE: Self

Source

pub const AQUA: Self

Source

pub const TEAL: Self

Source

pub const EASTERN: Self

Source

pub const PURPLE: Self

Source

pub const FUCHSIA: Self

Source

pub const MAROON: Self

Source

pub const RED: Self

Source

pub const ORANGE: Self

Source

pub const YELLOW: Self

Source

pub const OLIVE: Self

Source

pub const GREEN: Self

Source

pub const LIME: Self

Source

pub const MAP: fn() -> Module

The module of preset color maps.

Source

pub fn luma(args: &mut Args) -> SourceResult<Color>

Create a grayscale color.

Source

pub fn oklab(args: &mut Args) -> SourceResult<Color>

Create an #link(“https://bottosson.github.io/posts/oklab/”)Oklab color.

Source

pub fn oklch(args: &mut Args) -> SourceResult<Color>

Create an #link(“https://bottosson.github.io/posts/oklab/”)Oklch color.

Source

pub fn linear_rgb(args: &mut Args) -> SourceResult<Color>

Create an RGB(A) color with linear luma.

Source

pub fn rgb(args: &mut Args) -> SourceResult<Color>

Create an RGB(A) color.

Source

pub fn cmyk(args: &mut Args) -> SourceResult<Color>

Create a CMYK color.

Source

pub fn hsl(args: &mut Args) -> SourceResult<Color>

Create an HSL color.

Source

pub fn hsv(args: &mut Args) -> SourceResult<Color>

Create an HSV color.

Source

pub fn components(&self, alpha: bool) -> Array

Extracts the components of this color.

Source

pub fn space(&self) -> ColorSpace

Returns the constructor function for this color’s space.

Source

pub fn to_hex(&self) -> EcoString

Returns the color’s RGB(A) hex representation (such as #ffaa32 or #020304fe).

Source

pub fn lighten(&self, factor: Ratio) -> Color

Lightens a color by a given factor.

Source

pub fn darken(&self, factor: Ratio) -> Color

Darkens a color by a given factor.

Source

pub fn saturate(&self, span: Span, factor: Ratio) -> SourceResult<Color>

Increases the saturation of a color by a given factor.

Source

pub fn desaturate(&self, span: Span, factor: Ratio) -> SourceResult<Color>

Decreases the saturation of a color by a given factor.

Source

pub fn negate(&self, space: Smart<ColorSpace>) -> HintedStrResult<Color>

Produces the complementary color using a provided color space.

Source

pub fn rotate( &self, span: Span, angle: Angle, space: ProcessColorSpace, ) -> SourceResult<Color>

Rotates the hue of the color by a given angle.

Source

pub fn mix( colors: Vec<WeightedColor>, space: Smart<ColorSpace>, ) -> HintedStrResult<Color>

Create a color by mixing two or more colors.

Source

pub fn transparentize(&self, scale: Ratio) -> StrResult<Color>

Makes a color more transparent by a given factor.

Source

pub fn opacify(&self, scale: Ratio) -> StrResult<Color>

Makes a color more opaque by a given scale.

Source§

impl Color

Source

pub fn mix_iter( colors: impl IntoIterator<Item = WeightedColor, IntoIter = impl ExactSizeIterator<Item = WeightedColor>> + Clone, space: Smart<ColorSpace>, ) -> HintedStrResult<Color>

Same as Color::mix, but takes an iterator instead of a vector.

Source

pub fn from_u8(r: u8, g: u8, b: u8, a: u8) -> Self

Construct a new RGBA color from 8-bit values.

Source

pub fn from_u32(color: u32) -> Self

Converts a 32-bit integer to an RGBA color.

Source

pub fn alpha(&self) -> Option<f32>

Returns the alpha channel of the color, if it has one.

Source

pub fn with_alpha(self, alpha: f32) -> Self

Sets the alpha channel of the color, if it has one.

Source

pub fn to_vec4(&self) -> [f32; 4]

Converts the color to a vec of four floats.

Source

pub fn to_vec4_u8(&self) -> [u8; 4]

Converts the color to a vec of four u8s.

Source

pub fn to_space(&self, space: &ColorSpace) -> HintedStrResult<Self>

Source

pub fn to_process_space(&self, space: ProcessColorSpace) -> Self

Source

pub fn to_luma(&self) -> Luma

Source

pub fn to_oklab(&self) -> Oklab

Source

pub fn to_oklch(&self) -> Oklch

Source

pub fn to_rgb(&self) -> Rgb

Source

pub fn to_linear_rgb(&self) -> LinearRgb

Source

pub fn to_cmyk(&self) -> Cmyk

Source

pub fn to_hsl(&self) -> Hsl

Source

pub fn to_hsv(&self) -> Hsv

Source

pub fn to_process(&self) -> ProcessColor

Convert to ProcessColor, using fallback for spot colors.

This is useful for rendering and export where spot colors cannot be expressed and need to be converted to their fallback representation.

Trait Implementations§

Source§

impl Clone for Color

Source§

fn clone(&self) -> Color

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Color

Source§

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

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

impl Eq for Color

Source§

impl<C> From<C> for Color
where C: Into<ProcessColor>,

Source§

fn from(color: C) -> Self

Converts to this type from the input type.
Source§

impl From<SpotColor> for Color

Source§

fn from(c: SpotColor) -> Self

Converts to this type from the input type.
Source§

impl FromStr for Color

Source§

type Err = &'static str

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl FromValue for Color

Source§

fn from_value(value: Value) -> HintedStrResult<Self>

Try to cast the value into an instance of Self.
Source§

impl Hash for Color

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoValue for Color

Source§

fn into_value(self) -> Value

Cast this type into a value.
Source§

impl NativeScope for Color

Source§

fn constructor() -> Option<&'static NativeFuncData>

The constructor function for the type, if any.
Source§

fn scope() -> Scope

Get the associated scope for the type.
Source§

impl NativeType for Color

Source§

const NAME: &'static str = "color"

The type’s name. Read more
Source§

fn data() -> &'static NativeTypeData

Source§

fn ty() -> Type

Get the type for the native Rust type.
Source§

impl PartialEq for Color

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Reflect for Color

Source§

fn input() -> CastInfo

Describe what can be cast into this value.
Source§

fn output() -> CastInfo

Describe what this value can be cast into.
Source§

fn castable(value: &Value) -> bool

Whether the given value can be converted to T. Read more
Source§

fn error(found: &Value) -> HintedString

Produce an error message for an unacceptable value type. Read more
Source§

impl Repr for Color

Source§

fn repr(&self) -> EcoString

Return the debug representation of the value.
Source§

impl StructuralPartialEq for Color

Auto Trait Implementations§

§

impl Freeze for Color

§

impl RefUnwindSafe for Color

§

impl Send for Color

§

impl Sync for Color

§

impl Unpin for Color

§

impl UnsafeUnpin for Color

§

impl UnwindSafe for Color

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
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, dest: *mut u8)

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

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> FromValue<Spanned<Value>> for T
where T: FromValue,

Source§

fn from_value(value: Spanned<Value>) -> Result<T, HintedString>

Try to cast the value into an instance of Self.
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> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

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

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
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> IntoResult for T
where T: IntoValue,

Source§

fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>

Cast this type into a value.
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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.