Skip to main content

Image

Struct Image 

Source
pub struct Image<'a> { /* private fields */ }
Expand description

A JPEG2000 image or codestream.

Implementations§

Source§

impl<'a> Image<'a>

Source

pub fn new(data: &'a [u8], settings: &DecodeSettings) -> Result<Self>

Try to create a new JPEG2000 image from the given data.

Source

pub fn has_alpha(&self) -> bool

Whether the image has an alpha channel.

Source

pub fn color_space(&self) -> &ColorSpace

The color space of the image.

Source

pub fn width(&self) -> u32

The width of the image.

Source

pub fn height(&self) -> u32

The height of the image.

Source

pub fn original_bit_depth(&self) -> u8

The original bit depth of the image. You usually don’t need to do anything with this parameter, it just exists for informational purposes.

Source

pub fn decode(&self) -> Result<Vec<u8>>

Decode the image and return its decoded result as a Vec<u8>, with each channel interleaved.

Source

pub fn decode_into( &'a self, buf: &mut [u8], decoder_context: &mut DecoderContext<'a>, ) -> Result<()>

Decode the image into the given buffer.

This method does the same as Image::decode, but you can provide a custom buffer for the output, as well as a decoder context. Doing so will allow hayro-jpeg2000 to reuse memory allocations, so this is especially recommended if you plan on converting multiple images in the same session.

The buffer must have the correct size.

Trait Implementations§

Source§

impl ImageDecoder for Image<'_>

Source§

fn dimensions(&self) -> (u32, u32)

Returns a tuple containing the width and height of the image
Source§

fn color_type(&self) -> ColorType

Returns the color type of the image data produced by this decoder
Source§

fn original_color_type(&self) -> ExtendedColorType

Returns the color type of the image file before decoding
Source§

fn read_image(self, buf: &mut [u8]) -> ImageResult<()>
where Self: Sized,

Returns all the bytes in the image. Read more
Source§

fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>

Use read_image instead; this method is an implementation detail needed so the trait can be object safe. Read more
Source§

fn icc_profile(&mut self) -> Result<Option<Vec<u8>>, ImageError>

Returns the ICC color profile embedded in the image, or Ok(None) if the image does not have one. Read more
Source§

fn exif_metadata(&mut self) -> Result<Option<Vec<u8>>, ImageError>

Returns the raw Exif chunk, if it is present. A third-party crate such as kamadak-exif is required to actually parse it. Read more
Source§

fn xmp_metadata(&mut self) -> Result<Option<Vec<u8>>, ImageError>

Returns the raw XMP chunk, if it is present. A third-party crate such as roxmltree is required to actually parse it. Read more
Source§

fn iptc_metadata(&mut self) -> Result<Option<Vec<u8>>, ImageError>

Returns the raw IPTC chunk, if it is present. Read more
Source§

fn orientation(&mut self) -> Result<Orientation, ImageError>

Returns the orientation of the image. Read more
Source§

fn total_bytes(&self) -> u64

Returns the total number of bytes in the decoded image. Read more
Source§

fn set_limits(&mut self, limits: Limits) -> Result<(), ImageError>

Set the decoder to have the specified limits. See Limits for the different kinds of limits that is possible to set. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Image<'a>

§

impl<'a> RefUnwindSafe for Image<'a>

§

impl<'a> Send for Image<'a>

§

impl<'a> Sync for Image<'a>

§

impl<'a> Unpin for Image<'a>

§

impl<'a> UnsafeUnpin for Image<'a>

§

impl<'a> UnwindSafe for Image<'a>

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> 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, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

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.