Struct HdrMetadata

pub struct HdrMetadata { pub width: u32, pub height: u32, pub orientation: ((i8, i8), (i8, i8)), pub exposure: Option<f32>, pub color_correction: Option<(f32, f32, f32)>, pub pixel_aspect_ratio: Option<f32>, pub custom_attributes: Vec<(String, String)> }

Metadata for Radiance HDR image

Fields

width: u32

Width of decoded image. It could be either scanline length, or scanline count, depending on image orientation.

height: u32

Height of decoded image. It depends on orientation too.

orientation: ((i8, i8), (i8, i8))

Orientation matrix. For standard orientation it is ((1,0),(0,1)) - left to right, top to bottom. First pair tells how resulting pixel coordinates change along a scanline. Second pair tells how they change from one scanline to the next.

exposure: Option<f32>

Divide color values by exposure to get to get physical radiance in watts/steradian/m2

Image may not contain physical data, even if this field is set.

color_correction: Option<(f32, f32, f32)>

Divide color values by corresponding tuple member (r, g, b) to get to get physical radiance in watts/steradian/m2

Image may not contain physical data, even if this field is set.

pixel_aspect_ratio: Option<f32>

Pixel height divided by pixel width

custom_attributes: Vec<(String, String)>

All lines contained in image header are put here. Ordering of lines is preserved. Lines in the form "key=value" are represented as ("key", "value"). All other lines are ("", "line")

Trait Implementations

impl Clone for HdrMetadata

fn clone(&self) -> HdrMetadata

impl Debug for HdrMetadata

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

Auto Trait Implementations

impl Freeze for HdrMetadata

impl RefUnwindSafe for HdrMetadata

impl Send for HdrMetadata

impl Sync for HdrMetadata

impl Unpin for HdrMetadata

impl UnsafeUnpin for HdrMetadata

impl UnwindSafe for HdrMetadata

Blanket Implementations

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for HdrMetadata where ST: ?Sized, DT: ?Sized,

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for HdrMetadata where ST: ?Sized, DT: ?Sized,

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for HdrMetadata where T: ?Sized,

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

impl<T> CloneToUninit for HdrMetadata where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for HdrMetadata

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> IntoEither for HdrMetadata

impl<T> Pointable for HdrMetadata

const ALIGN: usize = _;
type Init = T;
unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T> Read<Exclusive, BecauseExclusive> for HdrMetadata where T: ?Sized,

impl<T> ToOwned for HdrMetadata where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for HdrMetadata where U: From<T>,

fn into(self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom<U> for HdrMetadata where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for HdrMetadata where U: TryFrom<T>,

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