Skip to main content

ImageBuffer

Struct ImageBuffer 

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

A decoded, fully validated container image owned as a flat byte buffer.

The type deliberately does not implement Clone. Container images are several megabytes large, and an accidental copy would leave a second image in memory that no layer is responsible for wiping.

Implementations§

Source§

impl ImageBuffer

Source

pub fn envelope(&self) -> &PngEnvelope

The shape of the file these samples were read from.

What the writing side reproduces, and the only description of the container that is about the file rather than about the pixels. See crate::image_io::envelope for what is copied out of it and what is deliberately left behind.

Trait Implementations§

Source§

impl CoverSource for ImageBuffer

Source§

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

Image dimensions as (width, height), in pixels.
Source§

fn pixels(&self) -> &[u8]

Raw sample bytes in row-major order.
Source§

fn pixels_mut(&mut self) -> &mut [u8]

Mutable view of the raw sample bytes, used by the embedding layer.
Source§

fn color_space(&self) -> ColorSpace

Pixel layout of the underlying samples.
Source§

fn pixel_count(&self) -> usize

Total number of pixels in the image.
Source§

fn pixel_offset(&self, x: u32, y: u32) -> usize

Byte offset of the first sample of the pixel at (x, y). Read more
Source§

impl Debug for ImageBuffer

Source§

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

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

impl Zeroize for ImageBuffer

Source§

fn zeroize(&mut self)

Overwrites the sample buffer in place.

Written by hand rather than derived: only pixels holds data worth wiping, whereas the derive would also reset the dimensions, which are metadata a caller may still need while inspecting the wiped buffer.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.