[−][src]Struct rgb::RGBA
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
Methods
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> AsPixels<RGBA<T, T>> for [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<T: Copy, B> ComponentMap<RGBA<B, B>, T, B> for RGBA<T>
[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: Eq, AlphaComponentType: Eq> Eq for RGBA<ComponentType, AlphaComponentType>
[src]
impl<ComponentType: Ord, AlphaComponentType: Ord> Ord for RGBA<ComponentType, AlphaComponentType>
[src]
fn cmp(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
fn clamp(self, min: Self, max: Self) -> Self
[src]
clamp
)Restrict a value to a certain interval. Read more
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>
fn lt(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
fn le(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
fn gt(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
fn ge(&self, other: &RGBA<ComponentType, AlphaComponentType>) -> bool
[src]
impl<ComponentType: Hash, AlphaComponentType: Hash> Hash for RGBA<ComponentType, AlphaComponentType>
[src]
fn hash<__HComponentTypeAlphaComponentType: Hasher>(
&self,
state: &mut __HComponentTypeAlphaComponentType
)
[src]
&self,
state: &mut __HComponentTypeAlphaComponentType
)
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<T: Display, A: Display> Display for RGBA<T, A>
[src]
impl<ComponentType: Debug, AlphaComponentType: Debug> Debug for RGBA<ComponentType, AlphaComponentType>
[src]
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: 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> 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, 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, 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]
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: Copy, AlphaComponentType: Copy> Copy for RGBA<ComponentType, AlphaComponentType>
[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<T> AsRef<[T]> for RGBA<T>
[src]
impl<T> AsMut<[T]> for RGBA<T>
[src]
impl<T> Into<[T; 4]> for RGBA<T>
[src]
impl<T, A> Into<(T, T, T, A)> for RGBA<T, A>
[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 From<RGBA<u16, u16>> for RGBA<i32>
[src]
impl From<RGBA<u8, u8>> for RGBA<f32>
[src]
impl From<RGBA<u8, u8>> for RGBA<f64>
[src]
impl From<RGBA<u16, u16>> for RGBA<f32>
[src]
impl From<RGBA<u16, u16>> 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<f32, f32>> for RGBA<f64>
[src]
impl<T: Clone, A> From<GrayAlpha<T, A>> for RGBA<T, A>
[src]
impl<T> From<RGBA<T, T>> for BGRA<T>
[src]
impl<T> From<BGRA<T, T>> for RGBA<T>
[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: 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<ComponentType: Clone, AlphaComponentType: Clone> Clone for RGBA<ComponentType, AlphaComponentType>
[src]
fn clone(&self) -> RGBA<ComponentType, AlphaComponentType>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<ComponentType: Default, AlphaComponentType: Default> Default for RGBA<ComponentType, AlphaComponentType>
[src]
Auto Trait Implementations
impl<ComponentType, AlphaComponentType> Unpin for RGBA<ComponentType, AlphaComponentType> where
AlphaComponentType: Unpin,
ComponentType: Unpin,
AlphaComponentType: Unpin,
ComponentType: Unpin,
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,
Blanket Implementations
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.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,