[][src]Struct ffimage::packed::image::generic::GenericFlatBuffer

pub struct GenericFlatBuffer<'a, T: Pixel> { /* fields omitted */ }

Implementations

impl<'a, T: Pixel> GenericFlatBuffer<'a, T>[src]

pub fn new(raw: &'a mut [T::T], width: u32, height: u32) -> Option<Self>[src]

Returns a flat image buffer with pixel accessors

'Flat' means that the backing memory of the image is not allocated by the struct. Thus, this struct allows for reusing existing (mutable) buffers and still having images defined by their pixel types.

Arguments

  • raw - Raw memory region
  • width - Width in pixels
  • height - Height in pixels

Example

use ffimage::color::rgb::*;
use ffimage::core::ImageBuffer;
use ffimage::packed::GenericImageFlatBuffer;

let mut mem = vec![0; 3];
let mut buf = GenericImageFlatBuffer::<Rgb<u8>>::new(&mut mem, 1, 1)
    .expect("Memory region too small");
let pix = Rgb::<u8>::new([255, 255, 255]);
buf.set_pixel(0, 0, &pix).unwrap();

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

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

Trait Implementations

impl<'a, T: Pixel> AccessPixel for GenericFlatBuffer<'a, T>[src]

type PixelType = T

impl<'a, T: Pixel> AccessPixelMut for GenericFlatBuffer<'a, T>[src]

type PixelType = T

impl<'a, T: Pixel> CloneImage for GenericFlatBuffer<'a, T>[src]

type Output = GenericBuffer<T>

impl<'a, SP, DP> Convert<GenericBuffer<DP>> for GenericFlatBuffer<'a, SP> where
    SP: Pixel,
    DP: Pixel,
    [SP]: TryConvertSlice<DP>, 
[src]

impl<'a, T: Pixel> ImageBuffer for GenericFlatBuffer<'a, T>[src]

impl<'a, T: Pixel> ImageView for GenericFlatBuffer<'a, T>[src]

type T = T

Pixel type

impl<'a, T: Pixel> IntoIterator for &'a GenericFlatBuffer<'a, T>[src]

type Item = &'a T

The type of the elements being iterated over.

type IntoIter = PixelIter<'a, GenericFlatBuffer<'a, T>>

Which kind of iterator are we turning this into?

impl<'a, T: Pixel> IntoIterator for &'a mut GenericFlatBuffer<'a, T>[src]

type Item = &'a mut T

The type of the elements being iterated over.

type IntoIter = PixelIterMut<'a, GenericFlatBuffer<'a, T>>

Which kind of iterator are we turning this into?

impl<'a, 'b, SP, DP> TryConvert<GenericFlatBuffer<'b, DP>> for GenericView<'a, SP> where
    SP: Pixel,
    DP: Pixel,
    [SP]: TryConvertSlice<DP>, 
[src]

type Error = ()

impl<'a, 'b, SP, DP> TryConvert<GenericFlatBuffer<'b, DP>> for GenericFlatBuffer<'a, SP> where
    SP: Pixel,
    DP: Pixel,
    [SP]: TryConvertSlice<DP>, 
[src]

type Error = ()

impl<'b, SP, DP> TryConvert<GenericFlatBuffer<'b, DP>> for GenericBuffer<SP> where
    SP: Pixel,
    DP: Pixel,
    [SP]: TryConvertSlice<DP>, 
[src]

type Error = ()

Auto Trait Implementations

impl<'a, T> RefUnwindSafe for GenericFlatBuffer<'a, T> where
    <T as Pixel>::T: RefUnwindSafe

impl<'a, T> Send for GenericFlatBuffer<'a, T> where
    <T as Pixel>::T: Send

impl<'a, T> Sync for GenericFlatBuffer<'a, T> where
    <T as Pixel>::T: Sync

impl<'a, T> Unpin for GenericFlatBuffer<'a, T>

impl<'a, T> !UnwindSafe for GenericFlatBuffer<'a, T>

Blanket Implementations

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

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

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

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

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

impl<B, V> TryConvert<B> for V where
    B: ImageBuffer + Resize,
    V: ImageView + Convert<B>, 
[src]

type Error = ()

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.

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.