#[non_exhaustive]pub enum ExtendedColorType {
Show 27 variants
A8,
L1,
La1,
Rgb1,
Rgba1,
L2,
La2,
Rgb2,
Rgba2,
L4,
La4,
Rgb4,
Rgba4,
L8,
La8,
Rgb8,
Rgba8,
L16,
La16,
Rgb16,
Rgba16,
Bgr8,
Bgra8,
Rgb32F,
Rgba32F,
Cmyk8,
Unknown(u8),
}
Expand description
An enumeration of color types encountered in image formats.
This is not exhaustive over all existing image formats but should be granular enough to allow round tripping of decoding and encoding as much as possible. The variants will be extended as necessary to enable this.
Another purpose is to advise users of a rough estimate of the accuracy and effort of the decoding from and encoding to such an image format.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
A8
Pixel is 8-bit alpha
L1
Pixel is 1-bit luminance
La1
Pixel is 1-bit luminance with an alpha channel
Rgb1
Pixel contains 1-bit R, G and B channels
Rgba1
Pixel is 1-bit RGB with an alpha channel
L2
Pixel is 2-bit luminance
La2
Pixel is 2-bit luminance with an alpha channel
Rgb2
Pixel contains 2-bit R, G and B channels
Rgba2
Pixel is 2-bit RGB with an alpha channel
L4
Pixel is 4-bit luminance
La4
Pixel is 4-bit luminance with an alpha channel
Rgb4
Pixel contains 4-bit R, G and B channels
Rgba4
Pixel is 4-bit RGB with an alpha channel
L8
Pixel is 8-bit luminance
La8
Pixel is 8-bit luminance with an alpha channel
Rgb8
Pixel contains 8-bit R, G and B channels
Rgba8
Pixel is 8-bit RGB with an alpha channel
L16
Pixel is 16-bit luminance
La16
Pixel is 16-bit luminance with an alpha channel
Rgb16
Pixel contains 16-bit R, G and B channels
Rgba16
Pixel is 16-bit RGB with an alpha channel
Bgr8
Pixel contains 8-bit B, G and R channels
Bgra8
Pixel is 8-bit BGR with an alpha channel
Rgb32F
Pixel is 32-bit float RGB
Rgba32F
Pixel is 32-bit float RGBA
Cmyk8
Pixel is 8-bit CMYK
Unknown(u8)
Pixel is of unknown color type with the specified bits per pixel. This can apply to pixels which are associated with an external palette. In that case, the pixel value is an index into the palette.
Implementations§
source§impl ExtendedColorType
impl ExtendedColorType
sourcepub fn channel_count(self) -> u8
pub fn channel_count(self) -> u8
Get the number of channels for colors of this type.
Note that the Unknown
variant returns a value of 1
since pixels can only be treated as
an opaque datum by the library.
Trait Implementations§
source§impl Clone for ExtendedColorType
impl Clone for ExtendedColorType
source§fn clone(&self) -> ExtendedColorType
fn clone(&self) -> ExtendedColorType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ExtendedColorType
impl Debug for ExtendedColorType
source§impl From<ColorType> for ExtendedColorType
impl From<ColorType> for ExtendedColorType
source§impl Hash for ExtendedColorType
impl Hash for ExtendedColorType
source§impl PartialEq for ExtendedColorType
impl PartialEq for ExtendedColorType
impl Copy for ExtendedColorType
impl Eq for ExtendedColorType
impl StructuralPartialEq for ExtendedColorType
Auto Trait Implementations§
impl Freeze for ExtendedColorType
impl RefUnwindSafe for ExtendedColorType
impl Send for ExtendedColorType
impl Sync for ExtendedColorType
impl Unpin for ExtendedColorType
impl UnwindSafe for ExtendedColorType
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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