Skip to main content

ImageMetadata

Struct ImageMetadata 

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

Image metadata

Each image type has this information present The decoder usually sets this up while the encoder can get these details from the user/image struct

Implementations§

Source§

impl ImageMetadata

Source

pub fn parse_raw_exif(&mut self, data: &[u8])

Parse raw Exif and store it as a field in the data

Data should point to the first exif byte

This requires the metadata feature to be activated otherwise it’s a compile error

Source§

impl ImageMetadata

Source

pub const fn exif(&self) -> Option<&Vec<Field>>

Return the exif metadata of an image or none if it doesn’t exist

Source

pub fn exif_mut(&mut self) -> Option<&mut Vec<Field>>

Return a mutable reference to the exif metadata of an image or none if it doesn’t exist

Source

pub const fn dimensions(&self) -> (usize, usize)

Get image dimensions as a tuple of width and height

§Example
use zune_image::metadata::ImageMetadata;
let meta = ImageMetadata::default();
// default dimensions are usually zero
assert_eq!(meta.dimensions(),(0,0));
Source

pub fn set_dimensions(&mut self, width: usize, height: usize)

Set image dimensions

§Example
use zune_image::metadata::ImageMetadata;
let mut meta = ImageMetadata::default();
// set image dimensions
meta.set_dimensions(23,24);
// get image dimensions
assert_eq!(meta.dimensions(),(23,24));
Source

pub const fn colorspace(&self) -> ColorSpace

Get an image’s colorspace

The default colorspace is usually ColorSpace::Unknown which represents an uninitialized image

Source

pub fn set_colorspace(&mut self, colorspace: ColorSpace)

Set the image’s colorspace

Source

pub const fn color_trc(&self) -> Option<ColorCharacteristics>

Get color transfer characteristics

Color transfer characteristics tell us more about how the colorspace values are represented whether they are linear or gamma encoded

Source

pub fn set_color_trc(&mut self, trc: ColorCharacteristics)

Set color transfer characteristics for this image

Source

pub const fn depth(&self) -> BitDepth

Get the image bit depth

Default value is BitDepth::Unknown which indicates that the bit-depth is currently unknown for a particular image

Source

pub fn set_depth(&mut self, depth: BitDepth)

Set the image bit depth

Source

pub fn set_default_gamma(&mut self, gamma: f32)

Set the default gamma for this image

This is gamma that will be used to convert this image from gamma colorspace to linear colorspace and back.

Do not set this in between operations, and do not set this if you do not know what you are doing.

The library will set this automatically for supported decoders (those which specify gamma during transfer)

§Arguments
  • gamma : The new gamma value
Source

pub const fn image_format(&self) -> Option<ImageFormat>

Get the image for which this metadata was fetched from

May be None if the caller didn’t set a format

Source

pub const fn alpha(&self) -> AlphaState

Source

pub fn is_premultiplied_alpha(&self) -> bool

Source

pub fn set_alpha(&mut self, alpha_state: AlphaState)

Source

pub fn set_icc_chunk(&mut self, icc_chunk: Vec<u8>)

Source

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

Return the icc chunk of the image

Source

pub fn is_linear(&self) -> bool

Return whether the image is in linear colorspace or not

if true -> Image in linear colorspace if false -> Image in gamma colorspace

Source

pub fn set_linear(&mut self, linear: bool)

Set whether the image is in linear colorspace or not

if true -> Image in linear colorspace if false -> Image in gamma colorspace

Trait Implementations§

Source§

impl Clone for ImageMetadata

Source§

fn clone(&self) -> ImageMetadata

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ImageMetadata

Source§

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

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

impl Default for ImageMetadata

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Serialize for ImageMetadata

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

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, Ctx> BundleDefault<Ctx> for T
where T: Default,

Source§

fn default_with_context(_: Ctx) -> T

Creates a default value with the given context.
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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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, 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more