GithubHelp home page GithubHelp logo

stong985 / lvgl-ttf-esp32 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from huming2207/lvgl-ttf-esp32

0.0 0.0 0.0 3.25 MB

LVGL + stb-truetype rendering TrueType on ESP32

C++ 9.05% C 88.10% CMake 2.85%

lvgl-ttf-esp32's Introduction

LittlevGL + stb_truetype PoC

This is a simple PoC for getting LVGL work with stb_truetype to render TrueType fonts on ESP32.

Tips for Asian fonts

Asian fonts are usually huge, up to a few tens of MB. You may need to trim the font file before dumping it to ESP32.

To do so, have a look at fontTools. Install it by pip install fonttools

Then, for example, go to main/resource directory, and run:

pyftsubset wenquanyi.ttf --text-file=font_subset.txt --output-file=wqy.ttf

...where in this case:

  • wenquanyi.ttf is a famous Chinese font, Wen Quan Yi, in TrueType format
  • font_subset.txt is the font subset I need for this demo project
  • wqy.ttf is the trimmed TrueType font

Here's what it will be like:

demo

To-do

  1. Rasterize a lot of fonts may be a bit stressful for CPU and RAM. Therefore we probably need a KV database thing to handle font caching. One possible approach is to use ESP-IDF's NVS and prepare a separate NVS partition for fonts. Then store all rendered font bitmap cache to that partition.
  2. Some heap allocations in stb_truetype can probably be avoided to prevent heap fragmentation.

License

MIT or Apache-2.0

lvgl-ttf-esp32's People

Contributors

huming2207 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.