pub struct JxlBasicInfo {Show 22 fields
pub have_container: JxlBool,
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: JxlBool,
pub linear_below: f32,
pub uses_original_profile: JxlBool,
pub have_preview: JxlBool,
pub have_animation: JxlBool,
pub orientation: JxlOrientation,
pub num_color_channels: u32,
pub num_extra_channels: u32,
pub alpha_bits: u32,
pub alpha_exponent_bits: u32,
pub alpha_premultiplied: JxlBool,
pub preview: JxlPreviewHeader,
pub animation: JxlAnimationHeader,
pub intrinsic_xsize: u32,
pub intrinsic_ysize: u32,
/* private fields */
}Expand description
Basic image information. This information is available from the file signature and first part of the codestream header.
Fields§
§have_container: JxlBoolWhether the codestream is embedded in the container format. If true, metadata information and extensions may be available in addition to the codestream.
xsize: u32Width of the image in pixels, before applying orientation.
ysize: u32Height of the image in pixels, before applying orientation.
bits_per_sample: u32Original image color channel bit depth.
exponent_bits_per_sample: u32Original 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: f32Upper 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. Leaving this set to its default of 0 lets libjxl choose a sensible default value based on the color encoding.
min_nits: f32Lower 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: JxlBoolSee the description of Self::linear_below.
linear_below: f32The 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: JxlBoolWhether 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. To convert the pixel data produced by
the decoder to the original color profile, one of the JxlDecoderGetColor*
functions needs to be called with
JxlColorProfileTarget::Data to get the color profile of the decoder
output, and then an external CMS can be used for conversion. Note that for
lossy compression, this should be set to false for most use cases, and if
needed, the image should be converted to the original color profile after
decoding, as described above.
have_preview: JxlBoolIndicates 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: JxlBoolIndicates animation frames exist in the codestream. The animation information is not included in the basic info.
orientation: JxlOrientationImage orientation, value 1-8 matching the values used by JEITA CP-3451C (Exif version 2.3).
num_color_channels: u32Number of color channels encoded in the image, this is either 1 for
grayscale data, or 3 for colored data. This count does not include
the alpha channel or other extra channels. To check presence of an alpha
channel, such as in the case of RGBA color, check alpha_bits != 0.
If and only if this is 1, the JxlColorSpace in the JxlColorEncoding is
JxlColorSpace::Gray.
num_extra_channels: u32Number of additional image channels. This includes the main alpha channel,
but can also include additional channels such as depth, additional alpha
channels, spot colors, and so on. Information about the extra channels
can be queried with JxlDecoderGetExtraChannelInfo. The main alpha
channel, if it exists, also has its information available in the
alpha_bits, alpha_exponent_bits and alpha_premultiplied fields in this
JxlBasicInfo.
alpha_bits: u32Bit depth of the encoded alpha channel, or 0 if there is no alpha channel.
If present, matches the alpha_bits value of the JxlExtraChannelInfo
associated with this alpha channel.
alpha_exponent_bits: u32Alpha channel floating point exponent bits, or 0 if they are unsigned. If
present, matches the alpha_bits value of the JxlExtraChannelInfo associated
with this alpha channel. integer.
alpha_premultiplied: JxlBoolWhether the alpha channel is premultiplied. Only used if there is a main
alpha channel. Matches the alpha_premultiplied value of the
JxlExtraChannelInfo associated with this alpha channel.
preview: JxlPreviewHeaderDimensions of encoded preview image, only used if have_preview is
JxlBool::True.
animation: JxlAnimationHeaderAnimation header with global animation properties for all frames, only
used if have_animation is JxlBool::True.
intrinsic_xsize: u32Intrinsic width of the image. The intrinsic size can be different from the actual size in pixels (as given by xsize and ysize) and it denotes the recommended dimensions for displaying the image, i.e. applications are advised to resample the decoded image to the intrinsic dimensions.
intrinsic_ysize: u32Intrinsic height of the image. The intrinsic size can be different from the actual size in pixels (as given by xsize and ysize) and it denotes the recommended dimensions for displaying the image, i.e. applications are advised to resample the decoded image to the intrinsic dimensions.
Trait Implementations§
Source§impl Clone for JxlBasicInfo
impl Clone for JxlBasicInfo
Source§fn clone(&self) -> JxlBasicInfo
fn clone(&self) -> JxlBasicInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more