Struct exr::image::read::image::ReadImage

source ·
pub struct ReadImage<OnProgress, ReadLayers> {
    on_progress: OnProgress,
    read_layers: ReadLayers,
    pedantic: bool,
    parallel: bool,
}
Expand description

Specify whether to read the image in parallel, whether to use pedantic error handling, and a callback for the reading progress.

Fields§

§on_progress: OnProgress§read_layers: ReadLayers§pedantic: bool§parallel: bool

Implementations§

source§

impl<F, L> ReadImage<F, L>where F: FnMut(f64),

source

pub fn new(read_layers: L, on_progress: F) -> Self

Uses relaxed error handling and parallel decompression.

source

pub fn pedantic(self) -> Self

Specify that any missing or unusual information should result in an error. Otherwise, exrs will try to compute or ignore missing information.

If pedantic is true, then an error will be returned as soon as anything is missing in the file, or two values in the image contradict each other. If pedantic is false, then only fatal errors will be thrown. By default, reading an image is not pedantic, which means that slightly invalid files might still be readable. For example, if some attribute is missing but can be recomputed, this flag decides whether an error is thrown. Or if the pedantic flag is true and there are still bytes left after the decompression algorithm finished, an error is thrown, because this should not happen and something might be wrong with the file. Or if your application is a target of attacks, or if you want to emulate the original C++ library, you might want to switch to pedantic reading.

source

pub fn non_parallel(self) -> Self

Specify that multiple pixel blocks should never be decompressed using multiple threads at once. This might be slower but uses less memory and less synchronization.

source

pub fn on_progress<OnProgress>( self, on_progress: OnProgress ) -> ReadImage<OnProgress, L>where OnProgress: FnMut(f64),

Specify a function to be called regularly throughout the loading process. Replaces all previously specified progress functions in this reader.

source

pub fn from_file<Layers>(self, path: impl AsRef<Path>) -> Result<Image<Layers>>where for<'s> L: ReadLayers<'s, Layers = Layers>,

Read the exr image from a file. Use [ReadImage::read_from_unbuffered] instead, if you do not have a file.

source

pub fn from_unbuffered<Layers>( self, unbuffered: impl Read + Seek ) -> Result<Image<Layers>>where for<'s> L: ReadLayers<'s, Layers = Layers>,

Buffer the reader and then read the exr image from it. Use [ReadImage::read_from_buffered] instead, if your reader is an in-memory reader. Use [ReadImage::read_from_file] instead, if you have a file path.

source

pub fn from_buffered<Layers>( self, buffered: impl Read + Seek ) -> Result<Image<Layers>>where for<'s> L: ReadLayers<'s, Layers = Layers>,

Read the exr image from a buffered reader. Use [ReadImage::read_from_file] instead, if you have a file path. Use [ReadImage::read_from_unbuffered] instead, if this is not an in-memory reader.

source

pub fn from_chunks<Layers>( self, chunks_reader: Reader<impl Read + Seek> ) -> Result<Image<Layers>>where for<'s> L: ReadLayers<'s, Layers = Layers>,

Read the exr image from an initialized chunks reader that has already extracted the meta data from the file. Use [ReadImage::read_from_file] instead, if you have a file path. Use [ReadImage::read_from_buffered] instead, if this is an in-memory reader.

Trait Implementations§

source§

impl<OnProgress: Clone, ReadLayers: Clone> Clone for ReadImage<OnProgress, ReadLayers>

source§

fn clone(&self) -> ReadImage<OnProgress, ReadLayers>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<OnProgress: Debug, ReadLayers: Debug> Debug for ReadImage<OnProgress, ReadLayers>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<OnProgress, ReadLayers> RefUnwindSafe for ReadImage<OnProgress, ReadLayers>where OnProgress: RefUnwindSafe, ReadLayers: RefUnwindSafe,

§

impl<OnProgress, ReadLayers> Send for ReadImage<OnProgress, ReadLayers>where OnProgress: Send, ReadLayers: Send,

§

impl<OnProgress, ReadLayers> Sync for ReadImage<OnProgress, ReadLayers>where OnProgress: Sync, ReadLayers: Sync,

§

impl<OnProgress, ReadLayers> Unpin for ReadImage<OnProgress, ReadLayers>where OnProgress: Unpin, ReadLayers: Unpin,

§

impl<OnProgress, ReadLayers> UnwindSafe for ReadImage<OnProgress, ReadLayers>where OnProgress: UnwindSafe, ReadLayers: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.