Struct image::codecs::openexr::OpenExrDecoder
source · pub struct OpenExrDecoder<R> {
exr_reader: Reader<R>,
header_index: usize,
alpha_preference: Option<bool>,
alpha_present_in_file: bool,
}
Expand description
An OpenEXR decoder. Immediately reads the meta data from the file.
Fields§
§exr_reader: Reader<R>
§header_index: usize
§alpha_preference: Option<bool>
§alpha_present_in_file: bool
Implementations§
source§impl<R: Read + Seek> OpenExrDecoder<R>
impl<R: Read + Seek> OpenExrDecoder<R>
sourcepub fn new(source: R) -> ImageResult<Self>
pub fn new(source: R) -> ImageResult<Self>
Create a decoder. Consumes the first few bytes of the source to extract image dimensions.
Assumes the reader is buffered. In most cases,
you should wrap your reader in a BufReader
for best performance.
Loads an alpha channel if the file has alpha samples.
Use with_alpha_preference
if you want to load or not load alpha unconditionally.
sourcepub fn with_alpha_preference(
source: R,
alpha_preference: Option<bool>,
) -> ImageResult<Self>
pub fn with_alpha_preference( source: R, alpha_preference: Option<bool>, ) -> ImageResult<Self>
Create a decoder. Consumes the first few bytes of the source to extract image dimensions.
Assumes the reader is buffered. In most cases,
you should wrap your reader in a BufReader
for best performance.
If alpha preference is specified, an alpha channel will
always be present or always be not present in the returned image.
If alpha preference is none, the alpha channel will only be returned if it is found in the file.
fn selected_exr_header(&self) -> &Header
Trait Implementations§
source§impl<R: Debug> Debug for OpenExrDecoder<R>
impl<R: Debug> Debug for OpenExrDecoder<R>
source§impl<'a, R: 'a + Read + Seek> ImageDecoder<'a> for OpenExrDecoder<R>
impl<'a, R: 'a + Read + Seek> ImageDecoder<'a> for OpenExrDecoder<R>
source§fn into_reader(self) -> ImageResult<Self::Reader>
👎Deprecated: Planned for removal. See https://github.com/image-rs/image/issues/1989
fn into_reader(self) -> ImageResult<Self::Reader>
Use read_image
instead if possible,
as this method creates a whole new buffer just to contain the entire image.
source§fn dimensions(&self) -> (u32, u32)
fn dimensions(&self) -> (u32, u32)
source§fn color_type(&self) -> ColorType
fn color_type(&self) -> ColorType
source§fn original_color_type(&self) -> ExtendedColorType
fn original_color_type(&self) -> ExtendedColorType
source§fn scanline_bytes(&self) -> u64
fn scanline_bytes(&self) -> u64
total_bytes()
.source§fn read_image_with_progress<F: Fn(Progress)>(
self,
unaligned_bytes: &mut [u8],
progress_callback: F,
) -> ImageResult<()>
fn read_image_with_progress<F: Fn(Progress)>( self, unaligned_bytes: &mut [u8], progress_callback: F, ) -> ImageResult<()>
read_image
but periodically calls the provided callback to give updates on loading
progress.source§fn icc_profile(&mut self) -> Option<Vec<u8>>
fn icc_profile(&mut self) -> Option<Vec<u8>>
source§fn total_bytes(&self) -> u64
fn total_bytes(&self) -> u64
source§fn read_image(self, buf: &mut [u8]) -> ImageResult<()>
fn read_image(self, buf: &mut [u8]) -> ImageResult<()>
source§fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
fn set_limits(&mut self, limits: Limits) -> ImageResult<()>
Auto Trait Implementations§
impl<R> Freeze for OpenExrDecoder<R>where
R: Freeze,
impl<R> !RefUnwindSafe for OpenExrDecoder<R>
impl<R> Send for OpenExrDecoder<R>where
R: Send,
impl<R> Sync for OpenExrDecoder<R>where
R: Sync,
impl<R> Unpin for OpenExrDecoder<R>where
R: Unpin,
impl<R> !UnwindSafe for OpenExrDecoder<R>
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
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>
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>
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