pub struct JpegDecoder<R> {
decoder: Decoder<R>,
metadata: ImageInfo,
}
Expand description
JPEG decoder
Fields§
§decoder: Decoder<R>
§metadata: ImageInfo
Implementations§
source§impl<R: Read> JpegDecoder<R>
impl<R: Read> JpegDecoder<R>
sourcepub fn new(r: R) -> ImageResult<JpegDecoder<R>>
pub fn new(r: R) -> ImageResult<JpegDecoder<R>>
Create a new decoder that decodes from the stream r
sourcepub fn scale(
&mut self,
requested_width: u16,
requested_height: u16,
) -> ImageResult<(u16, u16)>
pub fn scale( &mut self, requested_width: u16, requested_height: u16, ) -> ImageResult<(u16, u16)>
Configure the decoder to scale the image during decoding.
This efficiently scales the image by the smallest supported scale factor that produces an image larger than or equal to the requested size in at least one axis. The currently implemented scale factors are 1/8, 1/4, 1/2 and 1.
To generate a thumbnail of an exact size, pass the desired size and then scale to the final size using a traditional resampling algorithm.
The size of the image to be loaded, with the scale factor applied, is returned.
Trait Implementations§
source§impl<'a, R: 'a + Read> ImageDecoder<'a> for JpegDecoder<R>
impl<'a, R: 'a + Read> ImageDecoder<'a> for JpegDecoder<R>
§type Reader = JpegReader<R>
type Reader = JpegReader<R>
The type of reader produced by
into_reader
.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 icc_profile(&mut self) -> Option<Vec<u8>>
fn icc_profile(&mut self) -> Option<Vec<u8>>
Returns the ICC color profile embedded in the image Read more
source§fn into_reader(self) -> ImageResult<Self::Reader>
fn into_reader(self) -> ImageResult<Self::Reader>
👎Deprecated: Planned for removal. See https://github.com/image-rs/image/issues/1989
Returns a reader that can be used to obtain the bytes of the image. For the best
performance, always try to read at least
scanline_bytes
from the reader at a time. Reading
fewer bytes will cause the reader to perform internal buffering.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 original_color_type(&self) -> ExtendedColorType
fn original_color_type(&self) -> ExtendedColorType
Returns the color type of the image file before decoding
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 scanline_bytes(&self) -> u64
fn scanline_bytes(&self) -> u64
👎Deprecated: Planned for removal. See https://github.com/image-rs/image/issues/1989
Returns the minimum number of bytes that can be efficiently read from this decoder. This may
be as few as 1 or as many as
total_bytes()
.source§fn read_image_with_progress<F: Fn(Progress)>(
self,
buf: &mut [u8],
progress_callback: F,
) -> ImageResult<()>
fn read_image_with_progress<F: Fn(Progress)>( self, buf: &mut [u8], progress_callback: F, ) -> ImageResult<()>
👎Deprecated: Use read_image instead. See https://github.com/image-rs/image/issues/1989
Same as
read_image
but periodically calls the provided callback to give updates on loading
progress.source§fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
Auto Trait Implementations§
impl<R> Freeze for JpegDecoder<R>where
R: Freeze,
impl<R> RefUnwindSafe for JpegDecoder<R>where
R: RefUnwindSafe,
impl<R> Send for JpegDecoder<R>where
R: Send,
impl<R> Sync for JpegDecoder<R>where
R: Sync,
impl<R> Unpin for JpegDecoder<R>where
R: Unpin,
impl<R> UnwindSafe for JpegDecoder<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