Trait image::GenericImage
[−]
[src]
pub trait GenericImage: Sized { 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 get_pixel_mut(&mut self, x: u32, y: u32) -> &mut Self::Pixel; fn put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel); fn blend_pixel(&mut self, x: u32, y: u32, pixel: 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 { ... } unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel) { ... } fn pixels(&self) -> Pixels<Self> { ... } fn pixels_mut(&mut self) -> MutPixels<Self> { ... } fn copy_from<O>(&mut self, other: &O, x: u32, y: u32) -> bool where O: GenericImage<Pixel=Self::Pixel> { ... } fn sub_image<'a>(&'a mut self, x: u32, y: u32, width: u32, height: u32) -> SubImage<'a, Self> where Self: 'static, Self::Pixel::Subpixel: 'static, Self::Pixel: 'static { ... } }
A trait for manipulating images.
Associated Types
Required Methods
fn dimensions(&self) -> (u32, u32)
The width and height of this image.
fn bounds(&self) -> (u32, u32, u32, u32)
The bounding rectangle of this image.
fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel
Returns the pixel located at (x, y)
Panics
Panics if (x, y)
is out of bounds.
TODO: change this signature to &P
fn get_pixel_mut(&mut self, x: u32, y: u32) -> &mut Self::Pixel
fn put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)
fn blend_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)
Put a pixel at location (x, y), taking into account alpha channels
DEPRECATED: This method will be removed. Blend the pixel directly instead.
Provided Methods
fn width(&self) -> u32
The width of this image.
fn height(&self) -> u32
The height of this image.
fn in_bounds(&self, x: u32, y: u32) -> bool
Returns true if this x, y coordinate is contained inside the image.
unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> Self::Pixel
Returns the pixel located at (x, y)
This function can be implemented in a way that ignores bounds checking.
unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)
Puts a pixel at location (x, y)
This function can be implemented in a way that ignores bounds checking.
fn pixels(&self) -> Pixels<Self>
Returns an Iterator over the pixels of this image. The iterator yields the coordinates of each pixel along with their value
fn pixels_mut(&mut self) -> MutPixels<Self>
Returns an Iterator over mutable pixels of this image. The iterator yields the coordinates of each pixel along with a mutable reference to them.
DEPRECATED: This cannot be implemented safely in Rust. Please use the image buffer directly.
fn copy_from<O>(&mut self, other: &O, x: u32, y: u32) -> bool where O: GenericImage<Pixel=Self::Pixel>
Copies all of the pixels from another image into this image.
The other image is copied with the top-left corner of the other image placed at (x, y).
In order to copy only a pice of the other image, use sub_image
.
Returns
true
if the copy was successful, false
if the image could not
be copied due to size constraints.
fn sub_image<'a>(&'a mut self, x: u32, y: u32, width: u32, height: u32) -> SubImage<'a, Self> where Self: 'static, Self::Pixel::Subpixel: 'static, Self::Pixel: 'static
Returns a subimage that is a view into this image.
Implementors
impl<'a, I: GenericImage + 'static> GenericImage for SubImage<'a, I> where I::Pixel: 'static, I::Pixel::Subpixel: 'static
impl GenericImage for DynamicImage
impl<P, Container> GenericImage for ImageBuffer<P, Container> where P: Pixel + 'static, Container: Deref<Target=[P::Subpixel]> + DerefMut, P::Subpixel: 'static