[−][src]Struct ffimage::packed::generic::ImageBuffer
Implementations
impl<T: Pixel> ImageBuffer<T>
[src]
pub fn new(width: u32, height: u32) -> Self
[src]
Returns an image buffer with pixel accessors
The backing memory is allocated by this struct. There is no padding added so only the minimum amount of memory is consumed. In contrast to flat image buffers, fat buffer structs own their data and can safely be moved between threads.
Arguments
width
- Width in pixelsheight
- Height in pixels
Example
use ffimage::color::rgb::*; use ffimage::core::GenericImage; use ffimage::packed::generic::ImageBuffer; let mut buf = ImageBuffer::<Rgb<u8>>::new(3, 3); let pix = Rgb::<u8>::new([255, 255, 255]); buf.set_pixel(0, 0, &pix).unwrap();
pub fn from_raw(width: u32, height: u32, raw: Vec<T::T>) -> Option<Self>
[src]
Returns an image buffer with pixel accessors
The pixel memory is copied into an allocated buffer owned by this struct.
Arguments
width
- Width in pixelsheight
- Height in pixelsraw
- Pixel memory storage owned by the instance
Example
use ffimage::color::rgb::*; use ffimage::core::GenericImage; use ffimage::packed::generic::ImageBuffer; let mut mem = vec![0; 3]; let mut buf = ImageBuffer::<Rgb<u8>>::from_raw(1, 1, mem) .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]
pub fn stride(&self) -> usize
[src]
Returns the length of one pixel row in bytes
Trait Implementations
impl<'a, T: Pixel, '_> From<&'_ ImageView<'a, T>> for ImageBuffer<T>
[src]
impl<'a, T: Pixel, '_> From<&'_ ImageViewMut<'a, T>> for ImageBuffer<T>
[src]
fn from(view: &ImageViewMut<'a, T>) -> Self
[src]
impl<'a, T: Pixel + 'a> GenericImage<'a> for ImageBuffer<T>
[src]
impl<'a, T: Pixel + 'a> GenericImageView<'a> for ImageBuffer<T>
[src]
type T = T
Pixel type
fn width(&self) -> u32
[src]
fn height(&self) -> u32
[src]
fn pixel(&self, x: u32, y: u32) -> Option<Self::T>
[src]
type SubImage = SubImageView<'a, Self>
Type of sub images
fn view(
&'a self,
x: u32,
y: u32,
width: u32,
height: u32
) -> Option<Self::SubImage>
[src]
&'a self,
x: u32,
y: u32,
width: u32,
height: u32
) -> Option<Self::SubImage>
impl<T: Pixel> Index<usize> for ImageBuffer<T>
[src]
type Output = [T]
The returned type after indexing.
fn index(&self, index: usize) -> &Self::Output
[src]
impl<T: Pixel> IndexMut<usize> for ImageBuffer<T>
[src]
impl<T: Pixel> Into<Vec<<T as Pixel>::T>> for ImageBuffer<T>
[src]
impl<'a, T: Pixel> IntoIterator for &'a ImageBuffer<T>
[src]
type Item = &'a T
The type of the elements being iterated over.
type IntoIter = PixelIter<'a, ImageBuffer<T>>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
impl<'a, T: Pixel> IntoIterator for &'a mut ImageBuffer<T>
[src]
type Item = &'a mut T
The type of the elements being iterated over.
type IntoIter = PixelIterMut<'a, ImageBuffer<T>>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
impl<'a, SP, DP> TryConvert<ImageBuffer<DP>> for ImageView<'a, SP> where
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
[src]
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
type Error = ()
fn try_convert(&self, output: &mut ImageBuffer<DP>) -> Result<(), Self::Error>
[src]
impl<'a, SP, DP> TryConvert<ImageBuffer<DP>> for ImageViewMut<'a, SP> where
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
[src]
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
type Error = ()
fn try_convert(&self, output: &mut ImageBuffer<DP>) -> Result<(), Self::Error>
[src]
impl<SP, DP> TryConvert<ImageBuffer<DP>> for ImageBuffer<SP> where
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
[src]
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
type Error = ()
fn try_convert(&self, output: &mut ImageBuffer<DP>) -> Result<(), Self::Error>
[src]
impl<'b, SP, DP> TryConvert<ImageViewMut<'b, DP>> for ImageBuffer<SP> where
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
[src]
SP: Pixel,
DP: Pixel,
SP: TryConvertSlice<DP>,
type Error = ()
fn try_convert(
&self,
output: &mut ImageViewMut<'b, DP>
) -> Result<(), Self::Error>
[src]
&self,
output: &mut ImageViewMut<'b, DP>
) -> Result<(), Self::Error>
Auto Trait Implementations
impl<T> RefUnwindSafe for ImageBuffer<T> where
<T as Pixel>::T: RefUnwindSafe,
<T as Pixel>::T: RefUnwindSafe,
impl<T> Send for ImageBuffer<T> where
<T as Pixel>::T: Send,
<T as Pixel>::T: Send,
impl<T> Sync for ImageBuffer<T> where
<T as Pixel>::T: Sync,
<T as Pixel>::T: Sync,
impl<T> Unpin for ImageBuffer<T> where
<T as Pixel>::T: Unpin,
<T as Pixel>::T: Unpin,
impl<T> UnwindSafe for ImageBuffer<T> where
<T as Pixel>::T: UnwindSafe,
<T as Pixel>::T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,