Struct embedded_graphics::image::Image

source ·
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§

source§

impl<'a, I, C> Image<'a, I, C>

source

pub fn new(image_data: &'a I, position: Point) -> Self

Create a new Image with the given image pixel data.

The passed IntoPixelIter provides a source of pixel data from the original image.

Trait Implementations§

source§

impl<'a, I: Clone, C: Clone> Clone for Image<'a, I, C>

source§

fn clone(&self) -> Image<'a, I, C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, I: Debug, C: Debug> Debug for Image<'a, I, C>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, I, C> Dimensions for Image<'a, I, C>
where I: ImageDimensions, C: PixelColor + From<<C as PixelColor>::Raw>,

source§

fn top_left(&self) -> Point

Get the top left corner of the bounding box for an object
source§

fn bottom_right(&self) -> Point

Get the bottom right corner of the bounding box for an object
source§

fn size(&self) -> Size

Get the width and height for an object
source§

impl<'a, 'b, I, C> Drawable<C> for &'a Image<'b, I, C>

source§

fn draw<D: DrawTarget<C>>(self, display: &mut D) -> Result<(), D::Error>

Draw the graphics object using the supplied DrawTarget.
source§

impl<'a, 'b, I, C> IntoIterator for &'a Image<'b, I, C>
where &'b I: IntoPixelIter<C>, C: PixelColor + From<<C as PixelColor>::Raw>,

source§

type Item = Pixel<C>

The type of the elements being iterated over.
source§

type IntoIter = ImageIterator<'a, 'b, I, C>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<I, C> Transform for Image<'_, I, C>

source§

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

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));
source§

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>

§

impl<'a, I, C> Send for Image<'a, I, C>
where I: Sync, C: Send,

§

impl<'a, I, C> Sync for Image<'a, I, C>
where I: Sync, C: Sync,

§

impl<'a, I, C> Unpin for Image<'a, I, C>
where C: Unpin,

§

impl<'a, I, C> UnwindSafe for Image<'a, I, C>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

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