Crate embedded_graphics [] [src]

Embedded graphics

This crate aims to make drawing 2D graphics primitives super easy. It currently supports the following:

  • 1 bit-per-pixel images
  • 8 bit-per-pixel images (downsampled to 1BPP currently)
  • Primitives
    • Lines
    • Rectangles (and squares)
    • Circles
  • Text with a 6x8 pixel font

A core goal is to do the above without using any buffers; the crate should work without a dynamic memory allocator and without pre-allocating large chunks of memory. To achieve this, it takes an Iterator based approach, where pixel values and positions are calculated on the fly, with the minimum of saved state. This allows the consuming application to use far less RAM at little to no performance penalty.

To use this crate in a driver, you only need to implement the Drawing trait to start drawing things.

You can also add your own objects by implementing IntoIterator<Item = Pixel> to create an iterator that Drawable#draw() can consume.

Modules

drawable

Drawable trait and helpers

fonts

Pixel based fonts

image

Image object

prelude

Prelude

primitives

Graphics primitives

transform

Transformations for graphics objects

Traits

Drawing

The main trait of this crate. All graphics objects must implement it.