#embedded-graphics #font #renderer #ecosystem #subsystem #pure #u8g2

no-std u8g2-fonts

A text renderer for embedded-graphics, based on U8g2

5 releases (3 breaking)

0.4.0 Nov 12, 2023
0.3.0 Jun 8, 2023
0.2.0 Sep 7, 2022
0.1.0 Aug 27, 2022
0.1.0-alpha.1 Aug 26, 2022

#534 in Embedded development

Download history 57/week @ 2024-08-02 35/week @ 2024-08-09 51/week @ 2024-08-16 67/week @ 2024-08-23 67/week @ 2024-08-30 52/week @ 2024-09-06 115/week @ 2024-09-13 168/week @ 2024-09-20 113/week @ 2024-09-27 123/week @ 2024-10-04 25/week @ 2024-10-11 43/week @ 2024-10-18 97/week @ 2024-10-25 304/week @ 2024-11-01 112/week @ 2024-11-08 106/week @ 2024-11-15

628 downloads per month
Used in lilygo-epd47

Custom license

30MB
10K SLoC

u8g2-fonts

Hello World text rendered by this crate

Crates.io Crates.io License Build Status docs.rs Coverage Status

This crate is a pure Rust reimplementation of the font subsystem of U8g2.

It is intended for the embedded-graphics ecosystem.

Licensing

While this crate is MIT / Apache-2.0 licensed, note that the fonts themselves are not.

For more information about the font licenses, read the license agreement of U8g2.

Example

let font = FontRenderer::new::<fonts::u8g2_font_haxrcorp4089_t_cyrillic>();
let text = "embedded-graphics";

font.render_aligned(
    text,
    display.bounding_box().center() + Point::new(0, 16),
    VerticalPosition::Baseline,
    HorizontalAlignment::Center,
    FontColor::Transparent(BinaryColor::On),
    &mut display,
)
.unwrap();

This example is based on the hello-world of the official embedded-graphics examples.

If we replace the text rendering section of the example with the code above, it produces this output:

Embedded-graphics example with our U8g2 font

Note that the letter i sits snuck in between the h and the c, compared to the original example. This is not a monospace font.

Dependencies