[][src]Struct jpegxl_sys::JpegxlBasicInfo

#[repr(C)]pub struct JpegxlBasicInfo {
    pub have_container: c_int,
    pub signature_type: JpegxlSignatureType,
    pub xsize: u32,
    pub ysize: u32,
    pub bits_per_sample: u32,
    pub exponent_bits_per_sample: u32,
    pub intensity_target: f32,
    pub min_nits: f32,
    pub relative_to_max_display: c_int,
    pub linear_below: f32,
    pub have_preview: c_int,
    pub have_animation: c_int,
    pub orientation: JpegxlOrientation,
    pub num_extra_channels: u32,
    pub alpha_bits: u32,
    pub alpha_exponent_bits: u32,
    pub alpha_premultiplied: c_int,
}

Basic image information. This information is available from the file signature and first part of the codestream header.

Fields

have_container: c_int

Whether the codestream is embedded in the container format. If true, metadata information and extensions may be available in addition to the codestream.

signature_type: JpegxlSignatureType

Signature of the codestream.

xsize: u32

Width of the image in pixels, before applying orientation.

ysize: u32

Height of the image in pixels, before applying orientation.

bits_per_sample: u32

Original image color channel bit depth.

exponent_bits_per_sample: u32

Original image color channel floating point exponent bits, or 0 if they are unsigned integer. For example, if the original data is half-precision (binary16) floating point, bits_per_sample is 16 and exponent_bits_per_sample is 5, and so on for other floating point precisions.

intensity_target: f32

Upper bound on the intensity level present in the image in nits. For unsigned integer pixel encodings, this is the brightness of the largest representable value. The image does not necessarily contain a pixel actually this bright. An encoder is allowed to set 255 for SDR images without computing a histogram.

min_nits: f32

Lower bound on the intensity level present in the image. This may be loose, i.e. lower than the actual darkest pixel. When tone mapping, a decoder will map [min_nits, intensity_target] to the display range.

relative_to_max_display: c_int

See the description of relative_to_max_display.

linear_below: f32

The tone mapping will leave unchanged (linear mapping) any pixels whose brightness is strictly below this. The interpretation depends on relative_to_max_display. If true, this is a ratio [0, 1] of the maximum display brightness [nits], otherwise an absolute brightness [nits].

have_preview: c_int

Indicates a preview image exists near the beginning of the codestream. The preview itself or its dimensions are not included in the basic info.

have_animation: c_int

Indicates animation frames exist in the codestream. The animation information is not included in the basic info.

orientation: JpegxlOrientation

Image orientation, value 1-8 matching the values used by JEITA CP-3451C (Exif version 2.3).

num_extra_channels: u32

Number of additional image channels. Information of all the individual extra channels is not included in the basic info struct, except for the first alpha channel in the fields below. Information for other extra channels can be queried from the decoder at this point, however. TODO(lode): implement that feature

alpha_bits: u32

Bit depth of the encoded alpha channel, or 0 if there is no alpha channel.

alpha_exponent_bits: u32

Alpha channel floating point exponent bits, or 0 if they are unsigned integer.

alpha_premultiplied: c_int

Whether the alpha channel is premultiplied

Trait Implementations

impl Clone for JpegxlBasicInfo[src]

impl Copy for JpegxlBasicInfo[src]

impl Debug for JpegxlBasicInfo[src]

impl NewUninit for JpegxlBasicInfo[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.