Trait image::ImageDecoder
source · pub trait ImageDecoder: Sized {
type Reader: Read;
fn dimensions(&self) -> (u64, u64);
fn colortype(&self) -> ColorType;
fn into_reader(self) -> ImageResult<Self::Reader>;
fn row_bytes(&self) -> u64 { ... }
fn total_bytes(&self) -> u64 { ... }
fn scanline_bytes(&self) -> u64 { ... }
fn read_image(self) -> ImageResult<Vec<u8>> { ... }
fn read_image_with_progress<F: Fn(Progress)>(
self,
progress_callback: F
) -> ImageResult<Vec<u8>> { ... }
}
Expand description
The trait that all decoders implement
Required Associated Types
Required Methods
sourcefn dimensions(&self) -> (u64, u64)
fn dimensions(&self) -> (u64, u64)
Returns a tuple containing the width and height of the image
sourcefn into_reader(self) -> ImageResult<Self::Reader>
fn into_reader(self) -> ImageResult<Self::Reader>
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.
Provided Methods
sourcefn row_bytes(&self) -> u64
fn row_bytes(&self) -> u64
Returns the number of bytes in a single row of the image. All decoders will pad image rows to a byte boundary.
sourcefn total_bytes(&self) -> u64
fn total_bytes(&self) -> u64
Returns the total number of bytes in the image.
sourcefn scanline_bytes(&self) -> u64
fn scanline_bytes(&self) -> u64
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()
.
sourcefn read_image(self) -> ImageResult<Vec<u8>>
fn read_image(self) -> ImageResult<Vec<u8>>
Returns all the bytes in the image.
sourcefn read_image_with_progress<F: Fn(Progress)>(
self,
progress_callback: F
) -> ImageResult<Vec<u8>>
fn read_image_with_progress<F: Fn(Progress)>(
self,
progress_callback: F
) -> ImageResult<Vec<u8>>
Same as read_image
but periodically calls the provided callback to give updates on loading
progress.