Conversion to palette's Srgba type
This commit is contained in:
parent
63933e26d2
commit
831a07f720
1 changed files with 43 additions and 0 deletions
|
|
@ -1,3 +1,6 @@
|
||||||
|
#[cfg(feature = "colors")]
|
||||||
|
use palette::rgb::Srgba;
|
||||||
|
|
||||||
/// A color in the sRGB color space.
|
/// A color in the sRGB color space.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||||
pub struct Color {
|
pub struct Color {
|
||||||
|
|
@ -94,6 +97,24 @@ impl Color {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "colors")]
|
||||||
|
/// Convert from palette's [`Srgba`] type to a [`Color`]
|
||||||
|
///
|
||||||
|
/// [`Srgba`]: ../palette/rgb/type.Srgba.html
|
||||||
|
/// [`Color`]: struct.Color.html
|
||||||
|
pub fn from_srgba(srgba: Srgba) -> Color {
|
||||||
|
Color::new(srgba.red, srgba.green, srgba.blue, srgba.alpha)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "colors")]
|
||||||
|
/// Convert from [`Color`] to palette's [`Srgba`] type
|
||||||
|
///
|
||||||
|
/// [`Color`]: struct.Color.html
|
||||||
|
/// [`Srgba`]: ../palette/rgb/type.Srgba.html
|
||||||
|
pub fn into_srgba(self) -> Srgba {
|
||||||
|
Srgba::new(self.r, self.g, self.b, self.a)
|
||||||
|
}
|
||||||
|
|
||||||
/// Invert the Color in-place
|
/// Invert the Color in-place
|
||||||
pub fn invert(&mut self) {
|
pub fn invert(&mut self) {
|
||||||
self.r = clamp(1.0f32 - self.r);
|
self.r = clamp(1.0f32 - self.r);
|
||||||
|
|
@ -119,6 +140,28 @@ impl From<[f32; 4]> for Color {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "colors")]
|
||||||
|
/// Convert from palette's [`Srgba`] type to a [`Color`]
|
||||||
|
///
|
||||||
|
/// [`Srgba`]: ../palette/rgb/type.Srgba.html
|
||||||
|
/// [`Color`]: struct.Color.html
|
||||||
|
impl From<Srgba> for Color {
|
||||||
|
fn from(srgba: Srgba) -> Self {
|
||||||
|
Color::new(srgba.red, srgba.green, srgba.blue, srgba.alpha)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "colors")]
|
||||||
|
/// Convert from [`Color`] to palette's [`Srgba`] type
|
||||||
|
///
|
||||||
|
/// [`Color`]: struct.Color.html
|
||||||
|
/// [`Srgba`]: ../palette/rgb/type.Srgba.html
|
||||||
|
impl From<Color> for Srgba {
|
||||||
|
fn from(c: Color) -> Self {
|
||||||
|
Srgba::new(c.r, c.g, c.b, c.a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl From<HSLColor> for Color {
|
impl From<HSLColor> for Color {
|
||||||
fn from(hsl: HSLColor) -> Self {
|
fn from(hsl: HSLColor) -> Self {
|
||||||
// Compute Chroma
|
// Compute Chroma
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue