Struct rgb::RGBA [−][src]
The RGBA pixel
The component type can be u8
(aliased as RGBA8
), u16
(aliased as RGBA16
),
or any other type (but simple copyable types are recommended.)
You can specify a different type for alpha, but it’s only for special cases
(e.g. if you use a newtype like RGBA<LinearLight<u16>, u16>
).
Fields
r: ComponentType
Red
g: ComponentType
Green
b: ComponentType
Blue
a: AlphaComponentType
Alpha
Implementations
impl<T> RGBA<T>
[src]
pub const fn new(r: T, g: T, b: T, a: T) -> Self
[src]
Convenience function for creating a new pixel The order of arguments is R,G,B,A
impl<T, A> RGBA<T, A>
[src]
pub const fn new_alpha(r: T, g: T, b: T, a: A) -> Self
[src]
Convenience function for creating a new pixel The order of arguments is R,G,B,A
impl<T: Clone> RGBA<T>
[src]
impl<T: Clone, A> RGBA<T, A>
[src]
pub fn rgb(&self) -> RGB<T>
[src]
Copy RGB components out of the RGBA struct
Note: you can use .into()
to convert between other types
impl<T, A> RGBA<T, A>
[src]
pub fn rgb_mut(&mut self) -> &mut RGB<T>
[src]
Provide a mutable view of only RGB components (leaving out alpha). Useful to change color without changing opacity.
impl<T: Copy, A: Clone> RGBA<T, A>
[src]
pub fn map_rgb<F, U, B>(&self, f: F) -> RGBA<U, B> where
F: FnMut(T) -> U,
U: Clone,
B: From<A> + Clone,
[src]
F: FnMut(T) -> U,
U: Clone,
B: From<A> + Clone,
Create new RGBA with the same alpha value, but different RGB values
pub fn alpha(&self, a: A) -> Self
[src]
Create a new RGBA with the new alpha value, but same RGB values
pub fn map_alpha<F, B>(&self, f: F) -> RGBA<T, B> where
F: FnOnce(A) -> B,
[src]
F: FnOnce(A) -> B,
Create a new RGBA with a new alpha value created by the callback. Allows changing of the type used for the alpha channel.
Trait Implementations
impl<T: Add, A: Add> Add<RGBA<T, A>> for RGBA<T, A>
[src]
px + px
type Output = RGBA<<T as Add>::Output, <A as Add>::Output>
The resulting type after applying the +
operator.
fn add(self, other: RGBA<T, A>) -> Self::Output
[src]
impl<T> Add<T> for RGBA<T> where
T: Copy + Add<Output = T>,
[src]
T: Copy + Add<Output = T>,
px + 1
type Output = RGBA<T>
The resulting type after applying the +
operator.
fn add(self, r: T) -> Self::Output
[src]
impl<T, A> AddAssign<RGBA<T, A>> for RGBA<T, A> where
T: Copy + Add<Output = T>,
A: Copy + Add<Output = A>,
[src]
T: Copy + Add<Output = T>,
A: Copy + Add<Output = A>,
fn add_assign(&mut self, other: RGBA<T, A>)
[src]
impl<T> AddAssign<T> for RGBA<T> where
T: Copy + Add<Output = T>,
[src]
T: Copy + Add<Output = T>,
px + 1
fn add_assign(&mut self, r: T)
[src]
impl<T> AsMut<[T]> for RGBA<T>
[src]
impl<T> AsPixels<RGBA<T, T>> for [T]
[src]
impl<T> AsRef<[T]> for RGBA<T>
[src]
impl<ComponentType: Clone, AlphaComponentType: Clone> Clone for RGBA<ComponentType, AlphaComponentType>
[src]
fn clone(&self) -> RGBA<ComponentType, AlphaComponentType>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Copy, B> ComponentMap<RGBA<B, B>, T, B> for RGBA<T>
[src]
impl<T> ComponentSlice<T> for RGBA<T>
[src]
fn as_slice(&self) -> &[T]
[src]
fn as_mut_slice(&mut self) -> &mut [T]
[src]
impl<ComponentType: Copy, AlphaComponentType: Copy> Copy for RGBA<ComponentType, AlphaComponentType>
[src]
impl<ComponentType: Debug, AlphaComponentType: Debug> Debug for RGBA<ComponentType, AlphaComponentType>
[src]
impl<ComponentType: Default, AlphaComponentType: Default> Default for RGBA<ComponentType, AlphaComponentType>
[src]
impl<T: Display, A: Display> Display for RGBA<T, A>
[src]
impl<ComponentType: Eq, AlphaComponentType: Eq> Eq for RGBA<ComponentType, AlphaComponentType>
[src]
impl<T: Copy> From<[T; 4]> for RGBA<T>
[src]
impl<T, A> From<(T, T, T, A)> for RGBA<T, A>
[src]
impl<T: Copy> From<BGR<T>> for RGBA<T, u8>
[src]
Assumes 255 is opaque
impl<T: Copy> From<BGR<T>> for RGBA<T, u16>
[src]
Assumes 255 is opaque
impl<T> From<BGRA<T, T>> for RGBA<T>
[src]
impl<T: Clone, A> From<GrayAlpha<T, A>> for RGBA<T, A>
[src]
impl<T: Copy> From<RGB<T>> for RGBA<T, u8>
[src]
Assumes 255 is opaque
impl<T: Copy> From<RGB<T>> for RGBA<T, u16>
[src]
Assumes 65535 is opaque
impl<T> From<RGBA<T, T>> for BGRA<T>
[src]
impl From<RGBA<f32, f32>> for RGBA<f64>
[src]
impl From<RGBA<i16, i16>> for RGBA<f32>
[src]
impl From<RGBA<i16, i16>> for RGBA<f64>
[src]
impl From<RGBA<i32, i32>> for RGBA<f64>
[src]
impl From<RGBA<u16, u16>> for RGBA<i32>
[src]
impl From<RGBA<u16, u16>> for RGBA<f32>
[src]
impl From<RGBA<u16, u16>> for RGBA<f64>
[src]
impl From<RGBA<u8, u8>> for RGBA<f32>
[src]
impl From<RGBA<u8, u8>> for RGBA<f64>
[src]
impl<T> FromIterator<T> for RGBA<T>
[src]
fn from_iter<I: IntoIterator<Item = T>>(into_iter: I) -> Self
[src]
Takes exactly 4 elements from the iterator and creates a new instance. Panics if there are fewer elements in the iterator.
impl<ComponentType: Hash, AlphaComponentType: Hash> Hash for RGBA<ComponentType, AlphaComponentType>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T> Into<[T; 4]> for RGBA<T>
[src]
impl<T, A> Into<(T, T, T, A)> for RGBA<T, A>
[src]
impl<T> Mul<T> for RGBA<T> where
T: Copy + Mul<Output = T>,
[src]
T: Copy + Mul<Output = T>,
px * 1
type Output = RGBA<T>
The resulting type after applying the *
operator.
fn mul(self, r: T) -> Self::Output
[src]
impl<T> MulAssign<T> for RGBA<T> where
T: Copy + Mul<Output = T>,
[src]
T: Copy + Mul<Output = T>,
px * 1
fn mul_assign(&mut self, r: T)
[src]
impl<ComponentType: Ord, AlphaComponentType: Ord> Ord for RGBA<ComponentType, AlphaComponentType>
[src]
fn cmp(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl<ComponentType: PartialEq, AlphaComponentType: PartialEq> PartialEq<RGBA<ComponentType, AlphaComponentType>> for RGBA<ComponentType, AlphaComponentType>
[src]
fn eq(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
fn ne(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
impl<ComponentType: PartialOrd, AlphaComponentType: PartialOrd> PartialOrd<RGBA<ComponentType, AlphaComponentType>> for RGBA<ComponentType, AlphaComponentType>
[src]
fn partial_cmp(
&self,
other: &RGBA<ComponentType, AlphaComponentType>
) -> Option<Ordering>
[src]
&self,
other: &RGBA<ComponentType, AlphaComponentType>
) -> Option<Ordering>
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<ComponentType, AlphaComponentType> StructuralEq for RGBA<ComponentType, AlphaComponentType>
[src]
impl<ComponentType, AlphaComponentType> StructuralPartialEq for RGBA<ComponentType, AlphaComponentType>
[src]
impl<T: Sub, A: Sub> Sub<RGBA<T, A>> for RGBA<T, A>
[src]
px - px
type Output = RGBA<<T as Sub>::Output, <A as Sub>::Output>
The resulting type after applying the -
operator.
fn sub(self, other: RGBA<T, A>) -> Self::Output
[src]
impl<T> Sub<T> for RGBA<T> where
T: Copy + Sub,
[src]
T: Copy + Sub,
px - 1
Works only if alpha channel has same depth as RGB channels
type Output = RGBA<<T as Sub>::Output, <T as Sub>::Output>
The resulting type after applying the -
operator.
fn sub(self, r: T) -> Self::Output
[src]
impl<T, A> SubAssign<RGBA<T, A>> for RGBA<T, A> where
T: Copy + Sub<Output = T>,
A: Copy + Sub<Output = A>,
[src]
T: Copy + Sub<Output = T>,
A: Copy + Sub<Output = A>,
px - px
fn sub_assign(&mut self, other: RGBA<T, A>)
[src]
impl<T> SubAssign<T> for RGBA<T> where
T: Copy + Sub<Output = T>,
[src]
T: Copy + Sub<Output = T>,
px - 1
Works only if alpha channel has same depth as RGB channels
fn sub_assign(&mut self, r: T)
[src]
Auto Trait Implementations
impl<ComponentType, AlphaComponentType> Send for RGBA<ComponentType, AlphaComponentType> where
AlphaComponentType: Send,
ComponentType: Send,
AlphaComponentType: Send,
ComponentType: Send,
impl<ComponentType, AlphaComponentType> Sync for RGBA<ComponentType, AlphaComponentType> where
AlphaComponentType: Sync,
ComponentType: Sync,
AlphaComponentType: Sync,
ComponentType: Sync,
impl<ComponentType, AlphaComponentType> Unpin for RGBA<ComponentType, AlphaComponentType> where
AlphaComponentType: Unpin,
ComponentType: Unpin,
AlphaComponentType: Unpin,
ComponentType: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,