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: BufRead + Seek> OpenExrDecoder<R>
impl<R: BufRead + 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<R: BufRead + Seek> ImageDecoder for OpenExrDecoder<R>
impl<R: BufRead + Seek> ImageDecoder for OpenExrDecoder<R>
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 read_image(self, unaligned_bytes: &mut [u8]) -> ImageResult<()>
fn read_image(self, unaligned_bytes: &mut [u8]) -> ImageResult<()>
Source§fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>
fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>
read_image
instead; this method is an implementation detail needed so the trait can
be object safe. Read moreSource§fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
Ok(None)
if the image does not have one. Read moreSource§fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
kamadak-exif
is required to actually parse it. Read moreSource§fn orientation(&mut self) -> ImageResult<Orientation>
fn orientation(&mut self) -> ImageResult<Orientation>
Source§fn total_bytes(&self) -> u64
fn total_bytes(&self) -> u64
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