pub type ImgRef<'a, Pixel> = Img<&'a [Pixel]>;
Expand description
Reference to pixels inside another image.
Pass this structure by value (i.e. ImgRef
, not &ImgRef
).
Only width
of pixels of every stride
can be modified. The buf
may be longer than height
*stride
, but the extra space should be ignored.
Aliased Type§
struct ImgRef<'a, Pixel> {
pub buf: &'a [Pixel],
pub stride: usize,
pub width: u32,
pub height: u32,
}
Fields§
§buf: &'a [Pixel]
Storage for the pixels. Usually Vec<Pixel>
or &[Pixel]
. See ImgVec
and ImgRef
.
Note that future version will make this field private. Use .rows()
and .pixels()
iterators where possible, or buf()
/buf_mut()
/into_buf()
.
stride: usize
Number of pixels to skip in the container to advance to the next row.
Note: pixels between width
and stride
may not be usable, and may not even exist in the last row.
width: u32
Width of the image in pixels.
Note that this isn’t same as the width of the row in the buf
, see stride
height: u32
Height of the image in pixels.
Implementations§
source§impl<'a, T> ImgRef<'a, T>
impl<'a, T> ImgRef<'a, T>
source§impl<'a, T: Clone> ImgRef<'a, T>
impl<'a, T: Clone> ImgRef<'a, T>
sourcepub fn to_contiguous_buf(&self) -> (Cow<'a, [T]>, usize, usize)
pub fn to_contiguous_buf(&self) -> (Cow<'a, [T]>, usize, usize)
Returns a reference to the buffer, width, height. Guarantees that the buffer is contiguous,
i.e. it’s width*height
elements long, and [x + y*width]
addresses each pixel.
It will create a copy if the buffer isn’t contiguous (width != stride).
For a more efficient version, see into_contiguous_buf()
source§impl<'a, T: Copy> ImgRef<'a, T>
impl<'a, T: Copy> ImgRef<'a, T>
sourcepub fn pixels(&self) -> PixelsIter<'_, T> ⓘ
pub fn pixels(&self) -> PixelsIter<'_, T> ⓘ
Iterate width*height
pixels in the Img
, ignoring padding area
If you want to iterate in parallel, parallelize rows()
instead.
§Panics
if width is 0
source§impl<'a, T> ImgRef<'a, T>
impl<'a, T> ImgRef<'a, T>
sourcepub fn pixels_ref(&self) -> PixelsRefIter<'_, T> ⓘ
pub fn pixels_ref(&self) -> PixelsRefIter<'_, T> ⓘ
Iterate width*height
pixels in the Img
, by reference, ignoring padding area
If you want to iterate in parallel, parallelize rows()
instead.
§Panics
if width is 0