pub trait GenericImageView {
    type Pixel: Pixel;
    type InnerImageView: GenericImageView<Pixel = Self::Pixel>;

    fn dimensions(&self) -> (u32, u32);
    fn bounds(&self) -> (u32, u32, u32, u32);
    fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel;
    fn inner(&self) -> &Self::InnerImageView;

    fn width(&self) -> u32 { ... }
    fn height(&self) -> u32 { ... }
    fn in_bounds(&self, x: u32, y: u32) -> bool { ... }
    unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> Self::Pixel { ... }
    fn pixels(&self) -> Pixels<'_, Self>Notable traits for Pixels<'a, I>impl<'a, I: GenericImageView> Iterator for Pixels<'a, I>    type Item = (u32, u32, I::Pixel); { ... }
    fn view(
        &self,
        x: u32,
        y: u32,
        width: u32,
        height: u32
    ) -> SubImage<&Self::InnerImageView> { ... } }
Expand description

Trait to inspect an image.

Required Associated Types

The type of pixel.

Underlying image type. This is mainly used by SubImages in order to always have a reference to the original image. This allows for less indirections and it eases the use of nested SubImages.

Required Methods

The width and height of this image.

The bounding rectangle of this image.

Returns the pixel located at (x, y). Indexed from top left.

Panics

Panics if (x, y) is out of bounds.

TODO: change this signature to &P

Returns a reference to the underlying image.

Provided Methods

The width of this image.

The height of this image.

Returns true if this x, y coordinate is contained inside the image.

Returns the pixel located at (x, y). Indexed from top left.

This function can be implemented in a way that ignores bounds checking.

Safety

The coordinates must be in_bounds of the image.

Returns an Iterator over the pixels of this image. The iterator yields the coordinates of each pixel along with their value

Returns an subimage that is an immutable view into this image. You can use GenericImage::sub_image if you need a mutable view instead. The coordinates set the position of the top left corner of the view.

Implementors