pub(crate) struct DxtDecoder<R: Read> {
inner: R,
width_blocks: u32,
height_blocks: u32,
variant: DxtVariant,
row: u32,
}
Expand description
DXT decoder
Fields§
§inner: R
§width_blocks: u32
§height_blocks: u32
§variant: DxtVariant
§row: u32
Implementations§
Source§impl<R: Read> DxtDecoder<R>
impl<R: Read> DxtDecoder<R>
Sourcepub(crate) fn new(
r: R,
width: u32,
height: u32,
variant: DxtVariant,
) -> Result<DxtDecoder<R>, ImageError>
pub(crate) fn new( r: R, width: u32, height: u32, variant: DxtVariant, ) -> Result<DxtDecoder<R>, ImageError>
Create a new DXT decoder that decodes from the stream r
.
As DXT is often stored as raw buffers with the width/height
somewhere else the width and height of the image need
to be passed in width
and height
, as well as the
DXT variant in variant
.
width and height are required to be powers of 2 and at least 4.
otherwise an error will be returned
fn scanline_bytes(&self) -> u64
fn read_scanline(&mut self, buf: &mut [u8]) -> Result<usize>
Trait Implementations§
Source§impl<R: Read> ImageDecoder for DxtDecoder<R>
impl<R: Read> ImageDecoder for DxtDecoder<R>
Source§fn dimensions(&self) -> (u32, u32)
fn dimensions(&self) -> (u32, u32)
Returns a tuple containing the width and height of the image
Source§fn color_type(&self) -> ColorType
fn color_type(&self) -> ColorType
Returns the color type of the image data produced by this decoder
Source§fn read_image(self, buf: &mut [u8]) -> ImageResult<()>
fn read_image(self, buf: &mut [u8]) -> ImageResult<()>
Returns all the bytes in the image. Read more
Source§fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>
fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>
Use
read_image
instead; this method is an implementation detail needed so the trait can
be object safe. Read moreSource§fn original_color_type(&self) -> ExtendedColorType
fn original_color_type(&self) -> ExtendedColorType
Returns the color type of the image file before decoding
Source§fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
Returns the ICC color profile embedded in the image, or
Ok(None)
if the image does not have one. Read moreSource§fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
Returns the raw Exif chunk, if it is present.
A third-party crate such as
kamadak-exif
is required to actually parse it. Read moreSource§fn orientation(&mut self) -> ImageResult<Orientation>
fn orientation(&mut self) -> ImageResult<Orientation>
Returns the orientation of the image. Read more
Source§fn total_bytes(&self) -> u64
fn total_bytes(&self) -> u64
Returns the total number of bytes in the decoded image. Read more
Source§fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
Auto Trait Implementations§
impl<R> Freeze for DxtDecoder<R>where
R: Freeze,
impl<R> RefUnwindSafe for DxtDecoder<R>where
R: RefUnwindSafe,
impl<R> Send for DxtDecoder<R>where
R: Send,
impl<R> Sync for DxtDecoder<R>where
R: Sync,
impl<R> Unpin for DxtDecoder<R>where
R: Unpin,
impl<R> UnwindSafe for DxtDecoder<R>where
R: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
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 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>
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