LVGL je grafická knihovna s otevřeným zdrojovým kódem, která poskytuje vše, co potřebujete k vytvoření integrovaného grafického uživatelského rozhraní s snadno použitelnými grafickými prvky, krásnými vizuálními efekty a malými nároky na paměť.

LVGL je odlehčená zabudovaná knihovna pro displeje a dotykové obrazovky, která poskytuje vše potřebné pro vytvoření plně funkčních GUI.

Požadavky
  • 16, 32 or 64 bit microcontroller or processor
  • > 16 MHz speed is recommended
  • Flash/ROM: > 64 kB (180 kB is recommended)
  • RAM: 8 kB (24 kB is recommended)
  • 1 Frame buffer: in MCU or in external controller
  • Graphics buffer for LVGL: > “Horizontal resolution” pixels (1/10 “Screen size” is recommended)
  • C99 or newer compiler
  • Basic C (or C++) knowledge: pointers, structs, callbacks


Displej
  • Jakékoli rozlišení: od malých monochromatických displejů po Full HD monitory
  • Jednoduché rozhraní: jedna funkce ovladače pro zkopírování vykresleného obrazu na displej
  • Podpora GPU
  • Podpora více displejů
  • Podpora vlastního barevného formátu
  • Flexibilní režimy ukládání do vyrovnávací paměti pro vysokou kvalitu, skvělý výkon a nízké využití paměti


Vstupní zařízení
  • Více vstupních zařízení pro stejnou obrazovku
  • Jednoduché rozhraní: jedna funkce ovladače pro získání stavu vstupního zařízení
  • Přetáhněte, posouvejte objekty
  • Rozpoznávat gesta
  • Podpora klávesnice a enkodéru pro bezdotykovou navigaci


Vykreslování
  • Anti aliasing
  • Obdélník s poloměrem
  • Rámečky s poloměrem
  • Stín
  • Čára
  • Oblouk
  • Polygon
  • Maskování


Textové vlastnosti
  • Podpora UTF-8
  • Anti aliasing
  • Kerning
  • Obtékání slov a automatické posouvání textů
  • Podpora obousměrného textu (mix RTL a LTR)
  • Arabská a perská podpora
  • Komprese písma
  • Subpixel rendering
  • Online a offline převodník písem
  • Rozhraní pro vlastní písmo
  • Příklad integrace FreeType
  • Podpora více jazyků


Obrázkové vlastnosti
  • Barevné formáty: RGB, ARGB, Chroma klíčované, indexované, pouze alfa
  • V reálném čase změna barev obrázků
  • Real time zoom a rotace
  • Obrázky mohou být uložené v Flash nebo v souborech (např. SD karta)
  • Online a offline převaděč obrázků
  • Dekodéru obrazu pro ukládání do mezipaměti
  • Příklad integrace PNG


Styly
  • Nastavit vzhled widgetů
  • Kaskádové styly (jako v CSS)
  • Opakované použítí stylů v různých widgetech
  • Místní styly pro jednoduché změny
  • Motivy pro výchozí vzhled
  • Přechody (animace) při změně stavu


Widgety
  • Více než 30 výkonných, plně přizpůsobitelných widgetů
  • Tlačítko, panel, posuvník, graf, oblast textu, klávesnice a tak dále

Licence
  • Open source
  • Napasné v C (C++ compatible)
  • Dostupné na GitHub
  • Volné použití pod MIT licencí


Micropython
  • Binding to Micropython
  • Online simulátor
  • Podpora ESP32


Ukážky obrazovek


Zdroj
LVGL webová stránka
Github repozitář