Crate embedded_canvas

Source
Expand description

sponsor-usgithubcrates-io

embedded-canvas is a convenient crate for embedded-graphics and provides a Canvas and CanvasAt on which you can draw anything with ease before drawing the pixels on the embedded display.

canvas - a piece of cloth backed or framed as a surface for a painting

Based on embedded-graphics-core and embedded-graphics (see transform feature in Crate features).

This crate is no_std and it has 2 sets of canvases:

The main advantages of the canvases in this crate are:

  1. Transparency - pixels that haven’t been drawn, won’t override pixels on the display.

Example: Transparency

Example: Transparency - The canvas content (a circle) is drawn on the display where there’s already a drawn square.

  1. Cropping - The ability to crop leaves only the part of the canvas you want to draw on the display. This is especially useful when you want to partially show text, figures and images.

Example: Cropping text

Example: Cropping text - The full canvas content is drawn on the left and only portion of it is cropped and drawn on the right.

§How to work with canvases

There are two main canvases you can work with:

§Canvas / CCanvas

A canvas which you can draw on with origin Point::zero(). The canvas location is not set for the provided display.

After drawing decide where to place it on the display using the methods:

  • Canvas::place_at(top_left: Point) -> CanvasAt (with alloc feature) or CCanvas::place_at(top_left: Point) -> CCanvasAt
  • Canvas::place_center(center: Point) -> CanvasAt (with alloc feature) or CCanvas::place_center(center: Point) -> CCanvasAt

§CanvasAt / CCanavasAt

CanvasAt/CCanvasAt is a type of canvas ready to be drawn on the display at specified location (hence the name CanvasAt/CCanvasAt).

There are two ways of using CanvasAt/CCanvasAt:

  1. Directly placing the CanvasAt/CCanvasAt on specified location on the display and drawing inside.
  2. Create a Canvas/CCanvas and when ready to draw it on the display place the Canvas/CCanvas at specified location using the methods:
    • Canvas::place_at(top_left: Point) -> CanvasAt (with alloc feature) and CCanvas::place_at(top_left: Point) -> CCanvasAt
    • Canvas::place_center(center: Point) -> CanvasAt (with alloc feature) and CCanvas::place_center(center: Point) -> CCanvasAt

§Crate features

Structs§

CCanvas
Canvas on which you can draw but it’s not drawable on the display yet. Implemented using const generics.
CCanvasAt
Canvas which is drawable at the provided Point (location) on the display.
Canvasalloc
Canvas on which you can draw but it’s not drawable on the display yet.
CanvasAtalloc
Canvas which is drawable at the provided Point (location) on the display.