logo
pub trait GenericImageView {
    type Pixel: Pixel;

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

    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> Iterator for Pixels<'a, I> where
    I: GenericImageView
type Item = (u32, u32, <I as GenericImageView>::Pixel);
{ ... } fn view(&self, x: u32, y: u32, width: u32, height: u32) -> SubImage<&Self> { ... } }
Expand description

Trait to inspect an image.

use image::{GenericImageView, Rgb, RgbImage};

let buffer = RgbImage::new(10, 10);
let image: &dyn GenericImageView<Pixel=Rgb<u8>> = &buffer;

Required Associated Types

The type of pixel.

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.

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 a 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