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 decode_native(&self) -> Result<RawBitmap>

Decode the image at native bit depth without scaling to 8-bit.

For images with bit depth ≤ 8, returns pixel data as Vec<u8>. For images with bit depth > 8 (e.g., 12-bit or 16-bit), returns pixel data as little-endian u16 values packed into Vec<u8>.

This is essential for medical imaging (DICOM) where 12-bit and 16-bit images must preserve their full dynamic range.

§Errors

Returns an error when decoding or native sample packing fails.

Source

pub fn decode_native_region( &self, roi: (u32, u32, u32, u32), ) -> Result<RawBitmap>

Decode a region of the image at native bit depth.

§Errors

Returns an error when the region is invalid or decoding and packing fail.

Source

pub fn decode_native_region_components( &self, roi: (u32, u32, u32, u32), ) -> Result<DecodedNativeComponents>

Decode a source-coordinate region into owned native-bit-depth component planes.

§Errors

Returns an error when the region is invalid or decoding and packing fail.

Source

pub fn decode_native_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<RawBitmap>

Decode the image at native bit depth using a caller-provided decoder context so allocations can be reused across repeated decodes.

§Errors

Returns an error when decoding, sizing, or native sample packing fails.

Source

pub fn decode_native_region_with_context( &self, roi: (u32, u32, u32, u32), decoder_context: &mut DecoderContext<'a>, ) -> Result<RawBitmap>

Decode a region of the image at native bit depth using a caller-provided decoder context.

§Errors

Returns an error when the region is invalid or decoding, sizing, and packing fail.

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.

§Errors

Returns an error when the input signature, container, or codestream is invalid.

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.

§Errors

Returns an error when image validation, decoding, or output allocation fails.

Source

pub fn decode_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<Bitmap>

Decode the image and return its decoded result using a caller-provided decoder context so allocations can be reused across repeated decodes.

§Errors

Returns an error when image validation, decoding, or output allocation fails.

Source

pub fn decode_components_with_context<'ctx>( &self, decoder_context: &'ctx mut DecoderContext<'a>, ) -> Result<DecodedComponents<'ctx>>

Decode the image into borrowed component planes using a caller-provided decoder context so allocations can be reused across repeated decodes.

§Errors

Returns an error when component precision is unsupported or decoding fails.

Source

pub fn decode_native_components(&self) -> Result<DecodedNativeComponents>

Decode the image into owned native-bit-depth component planes.

Unlike Self::decode_native, this preserves per-component bit depth and signedness metadata and does not require all components to share a single packed interleaved representation.

§Errors

Returns an error when validation, decoding, or native sample packing fails.

Source

pub fn decode_native_components_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<DecodedNativeComponents>

Decode the image into owned native-bit-depth component planes using a caller-provided decoder context.

§Errors

Returns an error when validation, decoding, or native sample packing fails.

Source

pub fn decode_region_components_with_context<'ctx>( &self, roi: (u32, u32, u32, u32), decoder_context: &'ctx mut DecoderContext<'a>, ) -> Result<DecodedComponents<'ctx>>

Decode borrowed component planes for a requested region using a caller-provided decoder context.

§Errors

Returns an error when the region is invalid, precision is unsupported, or decoding fails.

Source

pub fn decode_native_region_components_with_context( &self, roi: (u32, u32, u32, u32), decoder_context: &mut DecoderContext<'a>, ) -> Result<DecodedNativeComponents>

Decode a source-coordinate region into owned native-bit-depth component planes using a caller-provided decoder context.

§Errors

Returns an error when the region is invalid or decoding and packing fail.

Source

pub fn decode_region(&self, roi: (u32, u32, u32, u32)) -> Result<Bitmap>

Decode a region of the image and return it as an 8-bit interleaved bitmap.

§Errors

Returns an error when the region is invalid or decoding fails.

Source

pub fn decode_region_with_context( &self, roi: (u32, u32, u32, u32), decoder_context: &mut DecoderContext<'a>, ) -> Result<Bitmap>

Decode a region of the image and return it as an 8-bit interleaved bitmap using a caller-provided decoder context.

§Errors

Returns an error when the region is invalid, decoding fails, or output sizing overflows.

Source

pub fn decode_into( &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 allows the internal decode engine 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.

§Errors

Returns an error when decoding fails or buf is too small for the image.

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> 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, 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.