Skip to main content

JxlColorProfile

Enum JxlColorProfile 

Source
pub enum JxlColorProfile {
    Icc(Vec<u8>),
    Simple(JxlColorEncoding),
}

Variants§

Implementations§

Source§

impl JxlColorProfile

Source

pub fn as_icc(&self) -> Cow<'_, Vec<u8>>

Returns the ICC profile, panicking if unavailable.

§Panics

Panics if the color encoding cannot generate an ICC profile. Consider using try_as_icc for fallible conversion.

Source

pub fn try_as_icc(&self) -> Option<Cow<'_, Vec<u8>>>

Attempts to get an ICC profile, returning None if unavailable.

Returns None for color encodings that cannot generate ICC profiles.

Source

pub fn same_color_encoding(&self, other: &Self) -> bool

Returns true if both profiles represent the same color encoding.

Two profiles are the same if they are both simple color encodings with matching color space (primaries, white point) and transfer function, or if they are both ICC profiles with identical bytes.

Source

pub fn transfer_function(&self) -> Option<&JxlTransferFunction>

Returns the transfer function if this is a simple color profile. Returns None for ICC profiles or XYB.

Source

pub fn can_output_to(&self) -> bool

Returns true if the decoder can output to this color profile without a CMS.

This is the equivalent of libjxl’s CanOutputToColorEncoding. Output is possible when the profile is a simple encoding (not ICC) with a natively-supported transfer function. For grayscale, the white point must be D65.

Source

pub fn with_linear_tf(&self) -> Option<Self>

Returns a copy of this profile with linear transfer function. For ICC profiles, returns None since we can’t modify embedded ICC profiles. This is used to create the CMS input profile for XYB images where XybStage outputs linear data.

Source

pub fn channels(&self) -> usize

Returns the number of color channels (1 for grayscale, 3 for RGB, 4 for CMYK).

For ICC profiles, this parses the profile header to determine the color space. Falls back to 3 (RGB) if the ICC profile cannot be parsed.

Source

pub fn is_cmyk(&self) -> bool

Returns true if this profile is for a CMYK color space.

For ICC profiles, this parses the profile header to check the color space. Simple color encodings are never CMYK.

Trait Implementations§

Source§

impl Clone for JxlColorProfile

Source§

fn clone(&self) -> JxlColorProfile

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JxlColorProfile

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for JxlColorProfile

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for JxlColorProfile

Source§

fn eq(&self, other: &JxlColorProfile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for JxlColorProfile

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> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.