All Projects → lvgl → lv_lib_rlottie

lvgl / lv_lib_rlottie

Licence: MIT License
Lottie animation support for LVGL

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to lv lib rlottie

lv lib split jpg
JPG decoder for LVGL
Stars: ✭ 22 (+37.5%)
Mutual labels:  embedded, lvgl
brookframework
Microframework which helps to develop web Pascal applications.
Stars: ✭ 161 (+906.25%)
Mutual labels:  embedded
EmbeddedScrollView
Embedded UIScrollView for iOS.
Stars: ✭ 55 (+243.75%)
Mutual labels:  embedded
kocherga
Robust platform-agnostic Cyphal/DroneCAN bootloader for deeply embedded systems
Stars: ✭ 21 (+31.25%)
Mutual labels:  embedded
embLua
Lua for microcontrollers
Stars: ✭ 23 (+43.75%)
Mutual labels:  embedded
rustsbi-qemu
QEMU platform SBI support implementation, using RustSBI
Stars: ✭ 39 (+143.75%)
Mutual labels:  embedded
adskalman-rs
Kalman filter implementation in Rust
Stars: ✭ 22 (+37.5%)
Mutual labels:  embedded
rigel
[UNMAINTAINED] HMAC-SHA512 implementation optimized for embedded devices
Stars: ✭ 14 (-12.5%)
Mutual labels:  embedded
async-stm32f1xx
Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers.
Stars: ✭ 24 (+50%)
Mutual labels:  embedded
grisp-software
Toolchain and Examples for GRISP
Stars: ✭ 28 (+75%)
Mutual labels:  embedded
kalman-clib
Microcontroller targeted C library for Kalman filtering
Stars: ✭ 43 (+168.75%)
Mutual labels:  embedded
js-docker
Container deployment of TIBCO JasperReports® Server
Stars: ✭ 115 (+618.75%)
Mutual labels:  embedded
kernel-syslog
📝 Kernel module that can be used as a replacement for syslog, logger or logwrapper
Stars: ✭ 37 (+131.25%)
Mutual labels:  embedded
Sub-IoT-Stack
Sub-IoT: Open Source Stack for Dash7 Alliance Protocol
Stars: ✭ 123 (+668.75%)
Mutual labels:  embedded
lottie-demo
Lottie & AE Hand by Hand
Stars: ✭ 22 (+37.5%)
Mutual labels:  lottie
HandsomeMod
IOT freedom for end users!
Stars: ✭ 39 (+143.75%)
Mutual labels:  lvgl
BIPES
BIPES: Block based Integrated Platform for Embedded Systems allows text and block based programming for several types of embedded systems and Internet of Things modules using MicroPython, CircuitPython, Python or Snek. You can connect, program, debug and monitor several types of boards using network, USB or Bluetooth. No software install needed!
Stars: ✭ 72 (+350%)
Mutual labels:  embedded
signalo
A DSP toolbox with focus on embedded environments written in Rust.
Stars: ✭ 71 (+343.75%)
Mutual labels:  embedded
lwprintf
Lightweight printf library optimized for embedded systems
Stars: ✭ 98 (+512.5%)
Mutual labels:  embedded
infinitree
Scalable and encrypted embedded database with 3-tier caching
Stars: ✭ 80 (+400%)
Mutual labels:  embedded

Lottie library for LVGL

This repository is merged into the lvgl repository. See https://docs.lvgl.io/master/libs/rlottie.html

Allows to use Rlottie animations in LVGL. Taken from base repository Uses Samsung/rlottie library with C-api header.

Rlottie build requires C++14-compatible compiler, optionally CMake 3.14.

lv_lib_rlottie_demo

Build setup

lv_lib_rottile can be built with CMake.

  1. Download or clone this repository with git clone https://github.com/lvgl/lv_lib_rlottie.git --recurse-submodules next to the lvgl folder. If you have downlaoded it run git submodule update --init for fetching the dependencies.
  2. In you CMakeFile.txt
  • add:
set(LOTTIE_MODULE OFF)
set(LOTTIE_THREAD OFF)
set(BUILD_SHARED_LIBS OFF)
  • include lv_lib_rlotties CMakeFile with include(${CMAKE_CURRENT_SOURCE_DIR}/lv_lib_rlottie/CMakeLists.txt)
  • link lv_lib_rlottie with your target. E.g. target_link_libraries(my_target PRIVATE lv_lib_rlottie)

Example CMakeList

An example CMakeList.txt file that builds lvgl, lv_demos, lv_driver and lv_lib_rlottie with SDL can look like tihs:

cmake_minimum_required(VERSION 3.10)
project(lvgl)
set(CMAKE_C_STANDARD 11)#C11
set(CMAKE_CXX_STANDARD 17)#C17
set(CMAKE_CXX_STANDARD_REQUIRED ON)

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})

file(GLOB_RECURSE INCLUDES "lv_drivers/*.h" "lv_demos/*.h"  "lvgl/*.h"  "./*.h" )
file(GLOB_RECURSE SOURCES  "lv_drivers/*.c" "lv_demos/*.c"  "lvgl/*.c" )

include(${CMAKE_CURRENT_SOURCE_DIR}/lv_lib_rlottie/CMakeLists.txt)

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
SET(CMAKE_CXX_FLAGS "-O3")

find_package(SDL2 REQUIRED SDL2)
include_directories(${SDL2_INCLUDE_DIRS})
add_executable(main main.c lv_lib_rlottie/lv_rlottie_example_fingerprint.c ${SOURCES} ${INCLUDES})
add_compile_definitions(LV_CONF_INCLUDE_SIMPLE)
target_link_libraries(main PRIVATE SDL2 lv_lib_rlottie)
add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main)

Usage

You can use animation from raw data (text) or files. In either case first include lv_lib_rlottie/lv_rlottie.h.

The width and height os the object be set in the craete function. The animation will be scaled accordingly.

Use Rlottie from raw string data

lv_rlottie_example_fingerprint.c contains an example animation in raw string format. It can be used like this:

extern const char FingerprintRaw[];
lv_obj_t* r1 = lv_rlottie_create_from_raw(parent, width, height, FingerprintRaw);

JSON escaping

For using raw strings it's necessary to escape an image data. For this purpose the following escape tool can be used: https://www.freeformatter.com/json-escape.html

Use Rlottie from external file

You can use card.json at first:

  lv_obj_t* r2 = lv_rlottie_create_from_file(lv_scr_act(), width, height, "../lv_lib_rlottie/card.json");

Getting aniamtions

Lottie is standard and popular format so you can find many animation files on the web. For example: https://lottiefiles.com/

You can also create your own animations with Adobe After Effects or similar software.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].