Skip to main content

RawFile

Enum RawFile 

Source
pub enum RawFile<R> {
    Arw(Box<ArwFile<R>>),
    Cr2(Box<Cr2File<R>>),
    Cr3(Box<Cr3File<R>>),
    Crw(Box<CrwFile<R>>),
    Dng(Box<DngFile<R>>),
    Nef(Box<NefFile<R>>),
    Raf(Box<RafFile<R>>),
}
Expand description

Common entry point for parsing RAW files.

Wraps the specific format implementation for the detected file type.

Variants§

§

Arw(Box<ArwFile<R>>)

Sony ARW format

§

Cr2(Box<Cr2File<R>>)

Canon CR2 format

§

Cr3(Box<Cr3File<R>>)

Canon CR3 format

§

Crw(Box<CrwFile<R>>)

Canon CRW (CIFF) format

§

Dng(Box<DngFile<R>>)

Adobe DNG format

§

Nef(Box<NefFile<R>>)

Nikon NEF format

§

Raf(Box<RafFile<R>>)

Fujifilm RAF format

Implementations§

Source§

impl<R: Read + Seek> RawFile<R>

Source

pub fn open(reader: R) -> RawResult<Self>

Open and parse a RAW file, automatically detecting the format.

This is the primary entry point for using valid file formats.

Source

pub fn metadata(&self) -> ImageMetadata

Get unified metadata from this RAW file.

This provides format-agnostic access to all available metadata.

Source

pub fn thumbnail(&mut self) -> RawResult<Option<Vec<u8>>>

Extract the embedded JPEG thumbnail from the RAW file, if available.

Returns Ok(Some(jpeg_bytes)) when a thumbnail is found, Ok(None) when the format does not contain one (or extraction is not yet implemented).

Source

pub fn decode_raw(&mut self) -> RawResult<RawImage>

Decode raw sensor data without processing.

Returns the raw Bayer/X-Trans CFA data with original bit depth. For LinearRaw DNG files, returns the already-demosaiced data as a RawImage.

Source

pub fn process( &mut self, processing_options: &ProcessingOptions, ) -> RawResult<RgbImage>

Decode and process to an in-memory RGB image.

Runs the full processing pipeline (black level, WB, demosaic, color matrix, denoise, CA correction, tone mapping, orientation) and returns the result without writing to disk.

Source

pub fn export<P: AsRef<Path>>( &mut self, path: P, processing_options: &ProcessingOptions, encode_options: &EncodeOptions, ) -> RawResult<()>

Export the raw file to an image format based on the encoded options.

This runs the full processing pipeline:

  1. Decode raw data
  2. Apply black level subtraction and normalization
  3. Demosaic
  4. Apply White Balance (if specified)
  5. Apply Color Matrix (if specified)
  6. Apply Gamma Correction (if specified)
  7. Save to disk using format-specific encoder
Source

pub fn is_linear_raw_dng(&self) -> bool

Helper to check if the current file is a LinearRaw DNG

Auto Trait Implementations§

§

impl<R> Freeze for RawFile<R>

§

impl<R> RefUnwindSafe for RawFile<R>
where R: RefUnwindSafe,

§

impl<R> Send for RawFile<R>
where R: Send,

§

impl<R> Sync for RawFile<R>
where R: Sync,

§

impl<R> Unpin for RawFile<R>

§

impl<R> UnsafeUnpin for RawFile<R>

§

impl<R> UnwindSafe for RawFile<R>
where R: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more