Struct imgref::Img[][src]

pub struct Img<Container> {
    pub buf: Container,
    pub stride: usize,
    pub width: u32,
    pub height: u32,
}

Basic struct used for both owned (alias ImgVec) and borrowed (alias ImgRef) image fragments.

Note: the fields are pub only because of borrow checker limitations. Please consider them as read-only.

Fields

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.

Deprecated

: Don't access struct fields directly. Use stride()

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.

Deprecated

: Don't access struct fields directly. Use width()

Width of the image in pixels.

Note that this isn't same as the width of the row in the buf, see stride

Deprecated

: Don't access struct fields directly. Use height()

Height of the image in pixels.

Methods

impl<Container> Img<Container>
[src]

Width of the image in pixels.

Note that this isn't same as the width of the row in image data, see stride()

Height of the image in pixels.

Number of pixels to skip in the container to advance to the next row.

Note the last row may have fewer pixels than the stride.

Important traits for RowsIter<'a, T>

impl<Container> Img<Container>
[src]

Same as new(), except each row is located stride number of pixels after the previous one.

Stride can be equal to width or larger. If it's larger, then pixels between end of previous row and start of the next are considered a padding, and may be ignored.

The Container is usually a Vec or a slice.

Create new image with Container (which can be Vec, &[] or something else) with given width and height in pixels.

Assumes the pixels in container are contiguous, layed out row by row with width pixels per row and at least height rows.

If the container is larger than width×height pixels, the extra rows are a considered a padding and may be ignored.

impl<OldContainer> Img<OldContainer>
[src]

A convenience method for creating an image of the same size and stride, but with a new buffer.

Trait Implementations

impl<'a, Pixel: Copy> Index<(usize, usize)> for Img<&'a [Pixel]>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> Index<(u32, u32)> for Img<&'a [Pixel]>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> Index<(usize, usize)> for Img<&'a mut [Pixel]>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> Index<(u32, u32)> for Img<&'a mut [Pixel]>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> IndexMut<(usize, usize)> for Img<&'a mut [Pixel]>
[src]

Write a pixel at (x,y) location (e.g. img[(x,y)] = px)

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> IndexMut<(u32, u32)> for Img<&'a mut [Pixel]>
[src]

Write a pixel at (x,y) location (e.g. img[(x,y)] = px)

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> Index<(usize, usize)> for Img<Vec<Pixel>>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> Index<(u32, u32)> for Img<Vec<Pixel>>
[src]

The returned type after indexing.

Read a pixel at (x,y) location (e.g. px = img[(x,y)])

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> IndexMut<(usize, usize)> for Img<Vec<Pixel>>
[src]

Write a pixel at (x,y) location (e.g. img[(x,y)] = px)

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<'a, Pixel: Copy> IndexMut<(u32, u32)> for Img<Vec<Pixel>>
[src]

Write a pixel at (x,y) location (e.g. img[(x,y)] = px)

Coordinates may be outside width/height if the buffer has enough padding. The x coordinate can't exceed stride.

impl<Container: Debug> Debug for Img<Container>
[src]

Formats the value using the given formatter. Read more

impl<Container: Copy> Copy for Img<Container>
[src]

impl<Container: Clone> Clone for Img<Container>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<Container: Hash> Hash for Img<Container>
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl<Container: PartialEq> PartialEq for Img<Container>
[src]

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

This method tests for !=.

impl<Container: Eq> Eq for Img<Container>
[src]

impl<Pixel, Container> ImgExt<Pixel> for Img<Container> where
    Container: AsRef<[Pixel]>, 
[src]

Maximum possible width of the data, including the stride. Read more

Height in number of full strides. If the underlying buffer is not an even multiple of strides, the last row is ignored. Read more

Iterate over the entire buffer as rows, including all padding

Rows will have up to stride width, but the last row may be shorter.

impl<Pixel, Container> ImgExtMut<Pixel> for Img<Container> where
    Container: AsMut<[Pixel]>, 
[src]

Iterate over the entire buffer as rows, including all padding

Rows will have up to stride width, but the last row may be shorter.

impl<Container> IntoIterator for Img<Container> where
    Container: IntoIterator
[src]

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

Auto Trait Implementations

impl<Container> Send for Img<Container> where
    Container: Send

impl<Container> Sync for Img<Container> where
    Container: Sync