Struct exr::image::pixel_vec::PixelVec[][src]

pub struct PixelVec<T> {
    pub resolution: Vec2<usize>,
    pub pixels: Vec<T>,
}
Expand description

Store all samples in a single array. All samples will be converted to the type T. This supports all the sample types, f16, f32, and u32.

The flattened vector contains all rows one after another. In each row, for each pixel, its red, green, blue, and then alpha samples are stored one after another.

Use PixelVec.compute_pixel_index(position) to compute the flat index of a specific pixel.

Fields

resolution: Vec2<usize>

The resolution of this layer.

pixels: Vec<T>

The flattened vector contains all rows one after another. In each row, for each pixel, its red, green, blue, and then alpha samples are stored one after another.

Use Flattened::compute_pixel_index(image, position) to compute the flat index of a specific pixel.

Implementations

impl<Pixel> PixelVec<Pixel>[src]

pub fn constructor<Channels>(resolution: Vec2<usize>, _: &Channels) -> Self where
    Pixel: Default + Clone
[src]

Create a new flattened pixel storage, filled with default pixels. Accepts a Channels parameter, which is not used, so that it can be passed as a function pointer instead of calling it.

pub fn get_pixel(&self, position: Vec2<usize>) -> &Pixel where
    Pixel: Sync
[src]

Examine a pixel of a PixelVec<T> image. Can usually be used as a function reference instead of calling it directly.

pub fn set_pixel(&mut self, position: Vec2<usize>, pixel: Pixel)[src]

Update a pixel of a PixelVec<T> image. Can usually be used as a function reference instead of calling it directly.

pub fn new(resolution: impl Into<Vec2<usize>>, pixels: Vec<Pixel>) -> Self[src]

Create a new flattened pixel storage, checking the length of the provided pixels vector.

pub fn compute_pixel_index(&self, position: Vec2<usize>) -> usize[src]

Compute the flat index of a specific pixel. Returns a range of either 3 or 4 samples. The computed index can be used with PixelVec.samples[index]. Panics for invalid sample coordinates.

Trait Implementations

impl<T: Clone> Clone for PixelVec<T>[src]

fn clone(&self) -> PixelVec<T>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<T> Debug for PixelVec<T>[src]

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<Px> GetPixel for PixelVec<Px> where
    Px: Clone + Sync
[src]

type Pixel = Px

The pixel tuple containing f32, f16, u32 and Sample values. The length of the tuple must match the number of channels in the image. Read more

fn get_pixel(&self, position: Vec2<usize>) -> Self::Pixel[src]

Inspect a single pixel at the requested position. Will be called exactly once for each pixel in the image. The position will not exceed the image dimensions. Might be called from multiple threads at the same time. Read more

impl<T: PartialEq> PartialEq<PixelVec<T>> for PixelVec<T>[src]

fn eq(&self, other: &PixelVec<T>) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &PixelVec<T>) -> bool[src]

This method tests for !=.

impl<Px> ValidateResult for PixelVec<Px> where
    Px: ValidateResult
[src]

fn validate_result(
    &self,
    other: &Self,
    options: ValidationOptions,
    location: String
) -> ValidationResult
[src]

Compare self with the other. Exceptional behaviour: Read more

fn assert_equals_result(&self, result: &Self)[src]

Compare self with the other. Panics if not equal. Read more

impl<T: Eq> Eq for PixelVec<T>[src]

impl<T> StructuralEq for PixelVec<T>[src]

impl<T> StructuralPartialEq for PixelVec<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for PixelVec<T> where
    T: RefUnwindSafe

impl<T> Send for PixelVec<T> where
    T: Send

impl<T> Sync for PixelVec<T> where
    T: Sync

impl<T> Unpin for PixelVec<T> where
    T: Unpin

impl<T> UnwindSafe for PixelVec<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.