Decoder

Struct Decoder 

Source
pub struct Decoder { /* private fields */ }
Expand description

Ultra HDR decoder.

Decodes Ultra HDR JPEGs, extracting the SDR base image, gain map, and metadata. Can reconstruct HDR content at various display brightness levels.

Implementations§

Source§

impl Decoder

Source

pub fn new(data: &[u8]) -> Result<Self>

Create a new decoder from JPEG data.

Source

pub fn is_ultrahdr(&self) -> bool

Check if this is a valid Ultra HDR image.

Source

pub fn metadata(&self) -> Option<&GainMapMetadata>

Get the gain map metadata.

Source

pub fn gainmap_jpeg(&self) -> Option<&[u8]>

Get the raw gain map JPEG data.

Source

pub fn decode_sdr(&self) -> Result<RawImage>

Decode the SDR base image.

Source

pub fn decode_gainmap(&self) -> Result<GainMap>

Decode the gain map.

Source

pub fn decode_hdr(&self, display_boost: f32) -> Result<RawImage>

Decode to HDR at the specified display boost level.

display_boost is the ratio of display peak brightness to SDR white. For example:

  • 1.0 = SDR display (no HDR enhancement)
  • 4.0 = Display capable of 4x SDR brightness
  • ~49.0 = Full HDR10 (10000 nits / 203 SDR nits)
Source

pub fn decode_hdr_with_format( &self, display_boost: f32, format: HdrOutputFormat, ) -> Result<RawImage>

Decode to HDR with a specific output format.

Source

pub fn icc_profile(&self) -> Option<Vec<u8>>

Get the ICC profile from the primary image if present.

Source

pub fn dimensions(&self) -> Result<(u32, u32)>

Get information about the decoded image dimensions.

Auto Trait Implementations§

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, 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, 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.