pub struct Image<'a> { /* private fields */ }Expand description
A JPEG2000 image or codestream.
Implementations§
Source§impl<'a> Image<'a>
impl<'a> Image<'a>
Sourcepub fn new(
data: &'a [u8],
settings: &DecodeSettings,
) -> Result<Image<'a>, DecodeError>
pub fn new( data: &'a [u8], settings: &DecodeSettings, ) -> Result<Image<'a>, DecodeError>
Try to create a new JPEG2000 image from the given data.
Sourcepub fn color_space(&self) -> &ColorSpace
pub fn color_space(&self) -> &ColorSpace
The color space of the image.
Sourcepub fn original_bit_depth(&self) -> u8
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.
Sourcepub fn supports_direct_device_plane_reuse(&self) -> bool
pub fn supports_direct_device_plane_reuse(&self) -> bool
Whether decode finishes with additional host-side component mutation or reordering.
Sourcepub fn decode(&self) -> Result<Vec<u8>, DecodeError>
pub fn decode(&self) -> Result<Vec<u8>, DecodeError>
Decode the image and return its decoded result as a Vec<u8>, with each
channel interleaved.
Sourcepub fn decode_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
) -> Result<Bitmap, DecodeError>
pub fn decode_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<Bitmap, DecodeError>
Decode the image and return its decoded result using a caller-provided decoder context so allocations can be reused across repeated decodes.
Sourcepub fn decode_components_with_context<'ctx>(
&self,
decoder_context: &'ctx mut DecoderContext<'a>,
) -> Result<DecodedComponents<'ctx>, DecodeError>
pub fn decode_components_with_context<'ctx>( &self, decoder_context: &'ctx mut DecoderContext<'a>, ) -> Result<DecodedComponents<'ctx>, DecodeError>
Decode the image into borrowed component planes using a caller-provided decoder context so allocations can be reused across repeated decodes.
Sourcepub fn build_direct_grayscale_plan_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
) -> Result<J2kDirectGrayscalePlan, DecodeError>
pub fn build_direct_grayscale_plan_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<J2kDirectGrayscalePlan, DecodeError>
Build a adapter grayscale direct device plan without materializing host component planes.
Sourcepub fn build_direct_grayscale_plan_region_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
output_region: (u32, u32, u32, u32),
) -> Result<J2kDirectGrayscalePlan, DecodeError>
pub fn build_direct_grayscale_plan_region_with_context( &self, decoder_context: &mut DecoderContext<'a>, output_region: (u32, u32, u32, u32), ) -> Result<J2kDirectGrayscalePlan, DecodeError>
Build a adapter grayscale direct device plan for an output-space region.
Sourcepub fn build_direct_color_plan_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
) -> Result<J2kDirectColorPlan, DecodeError>
pub fn build_direct_color_plan_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<J2kDirectColorPlan, DecodeError>
Build a adapter RGB direct device plan without materializing host component planes.
Sourcepub fn build_direct_color_plan_region_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
output_region: (u32, u32, u32, u32),
) -> Result<J2kDirectColorPlan, DecodeError>
pub fn build_direct_color_plan_region_with_context( &self, decoder_context: &mut DecoderContext<'a>, output_region: (u32, u32, u32, u32), ) -> Result<J2kDirectColorPlan, DecodeError>
Build a adapter RGB direct device plan for an output-space region.
Sourcepub fn decode_components_with_ht_decoder<'ctx>(
&self,
decoder_context: &'ctx mut DecoderContext<'a>,
ht_decoder: &mut dyn HtCodeBlockDecoder,
) -> Result<DecodedComponents<'ctx>, DecodeError>
pub fn decode_components_with_ht_decoder<'ctx>( &self, decoder_context: &'ctx mut DecoderContext<'a>, ht_decoder: &mut dyn HtCodeBlockDecoder, ) -> Result<DecodedComponents<'ctx>, DecodeError>
Decode borrowed component planes while delegating HTJ2K code-block decode.
Sourcepub fn decode_region_components_with_context<'ctx>(
&self,
roi: (u32, u32, u32, u32),
decoder_context: &'ctx mut DecoderContext<'a>,
) -> Result<DecodedComponents<'ctx>, DecodeError>
pub fn decode_region_components_with_context<'ctx>( &self, roi: (u32, u32, u32, u32), decoder_context: &'ctx mut DecoderContext<'a>, ) -> Result<DecodedComponents<'ctx>, DecodeError>
Decode borrowed component planes for a requested region using a caller-provided decoder context.
Sourcepub fn decode_region_components_with_ht_decoder<'ctx>(
&self,
decoder_context: &'ctx mut DecoderContext<'a>,
roi: (u32, u32, u32, u32),
ht_decoder: &mut dyn HtCodeBlockDecoder,
) -> Result<DecodedComponents<'ctx>, DecodeError>
pub fn decode_region_components_with_ht_decoder<'ctx>( &self, decoder_context: &'ctx mut DecoderContext<'a>, roi: (u32, u32, u32, u32), ht_decoder: &mut dyn HtCodeBlockDecoder, ) -> Result<DecodedComponents<'ctx>, DecodeError>
Decode borrowed component planes for a requested region while delegating code-block/transform stages through the adapter backend hook.
Sourcepub fn decode_region(
&self,
roi: (u32, u32, u32, u32),
) -> Result<Bitmap, DecodeError>
pub fn decode_region( &self, roi: (u32, u32, u32, u32), ) -> Result<Bitmap, DecodeError>
Decode a region of the image and return it as an 8-bit interleaved bitmap.
Sourcepub fn decode_region_with_context(
&self,
roi: (u32, u32, u32, u32),
decoder_context: &mut DecoderContext<'a>,
) -> Result<Bitmap, DecodeError>
pub fn decode_region_with_context( &self, roi: (u32, u32, u32, u32), decoder_context: &mut DecoderContext<'a>, ) -> Result<Bitmap, DecodeError>
Decode a region of the image and return it as an 8-bit interleaved bitmap using a caller-provided decoder context.
Sourcepub fn decode_native(&self) -> Result<RawBitmap, DecodeError>
pub fn decode_native(&self) -> Result<RawBitmap, DecodeError>
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.
Sourcepub fn decode_reversible_53_coefficients(
&self,
) -> Result<Reversible53CoefficientImage, DecodeError>
pub fn decode_reversible_53_coefficients( &self, ) -> Result<Reversible53CoefficientImage, DecodeError>
Extract reversible 5/3 wavelet coefficients for coefficient-domain classic JPEG 2000 to HTJ2K recoding.
This decodes classic Tier-1 code-blocks into dequantized reversible wavelet coefficients, but does not run inverse DWT or color conversion.
Sourcepub fn decode_reversible_53_coefficients_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
) -> Result<Reversible53CoefficientImage, DecodeError>
pub fn decode_reversible_53_coefficients_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<Reversible53CoefficientImage, DecodeError>
Extract reversible 5/3 wavelet coefficients using a caller-provided decoder context.
Sourcepub fn decode_native_region(
&self,
roi: (u32, u32, u32, u32),
) -> Result<RawBitmap, DecodeError>
pub fn decode_native_region( &self, roi: (u32, u32, u32, u32), ) -> Result<RawBitmap, DecodeError>
Decode a region of the image at native bit depth.
Sourcepub fn decode_native_with_context(
&self,
decoder_context: &mut DecoderContext<'a>,
) -> Result<RawBitmap, DecodeError>
pub fn decode_native_with_context( &self, decoder_context: &mut DecoderContext<'a>, ) -> Result<RawBitmap, DecodeError>
Decode the image at native bit depth using a caller-provided decoder context so allocations can be reused across repeated decodes.
Sourcepub fn decode_native_region_with_context(
&self,
roi: (u32, u32, u32, u32),
decoder_context: &mut DecoderContext<'a>,
) -> Result<RawBitmap, DecodeError>
pub fn decode_native_region_with_context( &self, roi: (u32, u32, u32, u32), decoder_context: &mut DecoderContext<'a>, ) -> Result<RawBitmap, DecodeError>
Decode a region of the image at native bit depth using a caller-provided decoder context.
Sourcepub fn decode_into(
&self,
buf: &mut [u8],
decoder_context: &mut DecoderContext<'a>,
) -> Result<(), DecodeError>
pub fn decode_into( &self, buf: &mut [u8], decoder_context: &mut DecoderContext<'a>, ) -> Result<(), DecodeError>
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.
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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