image::io

Type Alias Reader

Source
pub type Reader<R> = ImageReader<R>;
👎Deprecated: this type has been moved and renamed to image::ImageReader
Expand description

Deprecated re-export of ImageReader as Reader

Aliased Type§

struct Reader<R> { /* private fields */ }

Implementations

Source§

impl ImageReader<BufReader<File>>

Source

pub fn open<P>(path: P) -> Result<Self>
where P: AsRef<Path>,

Open a file to read, format will be guessed from path.

This will not attempt any io operation on the opened file.

If you want to inspect the content for a better guess on the format, which does not depend on file extensions, follow this call with a call to with_guessed_format.

Source§

impl<'a, R: 'a + BufRead + Seek> ImageReader<R>

Source

pub fn new(buffered_reader: R) -> Self

Create a new image reader without a preset format.

Assumes the reader is already buffered. For optimal performance, consider wrapping the reader with a BufReader::new().

It is possible to guess the format based on the content of the read object with with_guessed_format, or to set the format directly with set_format.

Source

pub fn with_format(buffered_reader: R, format: ImageFormat) -> Self

Construct a reader with specified format.

Assumes the reader is already buffered. For optimal performance, consider wrapping the reader with a BufReader::new().

Source

pub fn format(&self) -> Option<ImageFormat>

Get the currently determined format.

Source

pub fn set_format(&mut self, format: ImageFormat)

Supply the format as which to interpret the read image.

Source

pub fn clear_format(&mut self)

Remove the current information on the image format.

Note that many operations require format information to be present and will return e.g. an ImageError::Unsupported when the image format has not been set.

Source

pub fn no_limits(&mut self)

Disable all decoding limits.

Source

pub fn limits(&mut self, limits: Limits)

Set a custom set of decoding limits.

Source

pub fn into_inner(self) -> R

Unwrap the reader.

Source

pub fn into_decoder(self) -> ImageResult<impl ImageDecoder + 'a>

Convert the reader into a decoder.

Source

pub fn with_guessed_format(self) -> Result<Self>

Make a format guess based on the content, replacing it on success.

Returns Ok with the guess if no io error occurs. Additionally, replaces the current format if the guess was successful. If the guess was unable to determine a format then the current format of the reader is unchanged.

Returns an error if the underlying reader fails. The format is unchanged. The error is a std::io::Error and not ImageError since the only error case is an error when the underlying reader seeks.

When an error occurs, the reader may not have been properly reset and it is potentially hazardous to continue with more io.

§Usage

This supplements the path based type deduction from ImageReader::open() with content based deduction. This is more common in Linux and UNIX operating systems and also helpful if the path can not be directly controlled.

let image = ImageReader::open("image.unknown")?
    .with_guessed_format()?
    .decode()?;
Source

pub fn into_dimensions(self) -> ImageResult<(u32, u32)>

Read the image dimensions.

Uses the current format to construct the correct reader for the format.

If no format was determined, returns an ImageError::Unsupported.

Source

pub fn decode(self) -> ImageResult<DynamicImage>

Read the image (replaces load).

Uses the current format to construct the correct reader for the format.

If no format was determined, returns an ImageError::Unsupported.