logo
pub trait ImageDrawableExt: Sized {
    fn sub_image(&self, area: &Rectangle) -> SubImage<'_, Self>;
}
Expand description

Extension trait for image drawables.

Required methods

Returns a sub image of this image drawable.

If any of the given area lies outside the bounding box of the parent image, the intersection of area and the bounding box will be used.

Examples

This example loads a raw image containing multiple 16x16px sprites and draws two of them to a display, with their top-left corners positioned at (0, 0) and (32, 8).

use embedded_graphics::{
    image::{Image, ImageRaw, ImageRawBE},
    pixelcolor::Rgb565,
    prelude::*,
    primitives::Rectangle,
};

let data = [ 0xF8, 0x00, 0x07, 0xE0, 0xFF, 0xE0, /* ... */ ];
// or: let data = include_bytes!("sprite_atlas.raw");

let sprite_atlas = ImageRawBE::<Rgb565>::new(&data, 32);

let sprite_1 = sprite_atlas.sub_image(&Rectangle::new(Point::new(0, 0), Size::new(16, 16)));
let sprite_2 = sprite_atlas.sub_image(&Rectangle::new(Point::new(16, 0), Size::new(16, 16)));

Image::new(&sprite_1, Point::new(0, 0)).draw(&mut display)?;
Image::new(&sprite_2, Point::new(32, 8)).draw(&mut display)?;

Implementors