pub struct Image<'a, I, C> { /* private fields */ }
Expand description
Image drawable.
The Image
struct serves as a wrapper around other image types that provide pixel data decoded
from a given format (raw bytes, BMP, TGA, etc). It allows an image to be repositioned using
Transform::translate()
or Transform::translate_mut()
and drawn to a display that
implements the DrawTarget
trait.
Image
accepts any item that implements ImageDimensions
and &'_ IntoPixelIter
.
Refer to the module documentation for examples.
Implementations§
Trait Implementations§
Source§impl<'a, I, C> Dimensions for Image<'a, I, C>
impl<'a, I, C> Dimensions for Image<'a, I, C>
Source§impl<'a, 'b, I, C> IntoIterator for &'a Image<'b, I, C>
impl<'a, 'b, I, C> IntoIterator for &'a Image<'b, I, C>
Source§impl<I, C> Transform for Image<'_, I, C>
impl<I, C> Transform for Image<'_, I, C>
Source§fn translate(&self, by: Point) -> Self
fn translate(&self, by: Point) -> Self
Translate the image by a given delta, returning a new image
§Examples
§Move an image around
This examples moves a 4x4 black and white image by (10, 20)
pixels without mutating the
original image
use embedded_graphics::{
geometry::Point,
image::{Image, ImageRaw},
pixelcolor::BinaryColor,
prelude::*,
};
let image: ImageRaw<BinaryColor> = ImageRaw::new(&[0xff, 0x00, 0xff, 0x00], 4, 4);
let image: Image<_, BinaryColor> = Image::new(&image, Point::zero());
let image_moved = image.translate(Point::new(10, 20));
assert_eq!(image.top_left(), Point::zero());
assert_eq!(image_moved.top_left(), Point::new(10, 20));
Source§fn translate_mut(&mut self, by: Point) -> &mut Self
fn translate_mut(&mut self, by: Point) -> &mut Self
Translate the image by a given delta, modifying the original object
§Examples
§Move an image around
This examples moves a 4x4 black and white image by (10, 20)
pixels by mutating the
original image
use embedded_graphics::{
geometry::Point,
image::{Image, ImageRaw},
pixelcolor::BinaryColor,
prelude::*,
};
let image: ImageRaw<BinaryColor> = ImageRaw::new(&[0xff, 0x00, 0xff, 0x00], 4, 4);
let mut image: Image<_, BinaryColor> = Image::new(&image, Point::zero());
image.translate_mut(Point::new(10, 20));
assert_eq!(image.top_left(), Point::new(10, 20));
impl<'a, I: Copy, C: Copy> Copy for Image<'a, I, C>
Auto Trait Implementations§
impl<'a, I, C> Freeze for Image<'a, I, C>
impl<'a, I, C> RefUnwindSafe for Image<'a, I, C>where
I: RefUnwindSafe,
C: RefUnwindSafe,
impl<'a, I, C> Send for Image<'a, I, C>
impl<'a, I, C> Sync for Image<'a, I, C>
impl<'a, I, C> Unpin for Image<'a, I, C>where
C: Unpin,
impl<'a, I, C> UnwindSafe for Image<'a, I, C>where
I: RefUnwindSafe,
C: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 12 bytes