[−][src]Struct jpegxl_sys::JxlBasicInfo
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.
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 @see linear_below.
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].
uses_original_profile: c_int
Whether the data in the codestream is encoded in the original color profile that is attached to the codestream metadata header, or is encoded in an internally supported absolute color space (which the decoder can always convert to linear or non-linear sRGB or to XYB). If the original profile is used, the decoder outputs pixel data in the color space matching that profile, but doesn't convert it to any other color space. If the original profile is not used, the decoder only outputs the data as sRGB (linear if outputting to floating point, nonlinear with standard sRGB transfer function if outputting to unsigned integers) but will not convert it to to the original color profile. The decoder also does not convert to the target display color profile, but instead will always indicate which color profile the returned pixel data is encoded in when using @see JXL_COLOR_PROFILE_TARGET_DATA so that a CMS can be used to convert the data.
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: JxlOrientation
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
preview: JxlPreviewHeader
Dimensions of encoded preview image, only used if have_preview is JXL_TRUE.
animation: JxlAnimationHeader
Animation header with global animation properties for all frames, only used if have_animation is JXL_TRUE.
Trait Implementations
impl Clone for JxlBasicInfo
[src]
pub fn clone(&self) -> JxlBasicInfo
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for JxlBasicInfo
[src]
impl Debug for JxlBasicInfo
[src]
impl NewUninit for JxlBasicInfo
[src]
pub fn new_uninit() -> MaybeUninit<Self> where
Self: Sized,
[src]
Self: Sized,
Auto Trait Implementations
impl RefUnwindSafe for JxlBasicInfo
[src]
impl Send for JxlBasicInfo
[src]
impl Sync for JxlBasicInfo
[src]
impl Unpin for JxlBasicInfo
[src]
impl UnwindSafe for JxlBasicInfo
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,