#[non_exhaustive]pub struct FrameInfo {Show 20 fields
pub width: u32,
pub height: u32,
pub cpp: u32,
pub bits_per_sample: u8,
pub sample_format: SampleFormat,
pub cfa: Option<CfaPattern>,
pub layout: SensorLayout,
pub active_area: Rect,
pub crop: Rect,
pub masked_areas: Vec<Rect>,
pub black_level: BlackLevel,
pub black_from_masked: bool,
pub white_level: WhiteLevel,
pub white_balance: Option<WhiteBalance>,
pub white_balance_applied: bool,
pub color_matrices: ColorMatrices,
pub orientation: Orientation,
pub pixel_aspect: f32,
pub compression: Compression,
pub opcodes: Option<Arc<OpcodeLists>>,
}Expand description
Geometry and calibration of the decoded sensor buffer.
Everything here is known after parsing, before any pixel is decoded.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.width: u32Full decoded buffer width (including masked areas).
height: u32Full decoded buffer height (including masked areas).
cpp: u32Samples per pixel.
bits_per_sample: u8Significant bits per sample (e.g. 12 or 14).
sample_format: SampleFormatNumeric format of the decoded samples.
cfa: Option<CfaPattern>Colour filter pattern anchored at buffer (0, 0); None for monochrome and
multi-sample (linear, Foveon) data.
layout: SensorLayoutHow samples are arranged on the sensor.
active_area: RectRegion of valid image pixels (excludes optical black / masked borders).
crop: RectRecommended default crop (DNG DefaultCrop or vendor equivalent); inside active_area.
masked_areas: Vec<Rect>Masked (optical black) regions usable for black-level estimation.
black_level: BlackLevelBlack level (see also black_from_masked).
black_from_masked: boolWhen true, black_level is a fallback: the actual per-CFA-colour black is measured
from masked_areas after decoding (done by the high-level API).
white_level: WhiteLevelSaturation level of the stored samples.
white_balance: Option<WhiteBalance>As-shot white balance; None when the file records none.
white_balance_applied: boolTrue when the camera already applied white_balance to the stored samples (Sony
lossless YCbCr M/S, Nikon sNEF): developing them needs unit multipliers, and
white_balance (still the as-shot multipliers) only serves to change the balance.
color_matrices: ColorMatricesColour calibration (file or camera database).
orientation: OrientationOrientation to apply for display.
pixel_aspect: f32Pixel aspect ratio (width / height of a sensor site); 1.0 for almost all cameras.
compression: CompressionPayload compression scheme.
opcodes: Option<Arc<OpcodeLists>>DNG opcode lists carried by the file (applied by the high-level API).
Implementations§
Trait Implementations§
impl StructuralPartialEq for FrameInfo
Auto Trait Implementations§
impl Freeze for FrameInfo
impl RefUnwindSafe for FrameInfo
impl Send for FrameInfo
impl Sync for FrameInfo
impl Unpin for FrameInfo
impl UnsafeUnpin for FrameInfo
impl UnwindSafe for FrameInfo
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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