SVG support
Scalable Vector Graphics (SVG) Tiny 1.2 support in LVGL.
Detailed introduction: https://www.w3.org/TR/SVGTiny12/
Usage
Enable LV_USE_SVG
in lv_conf.h
.
See the examples below.
If you need support SVG animation attribute parsing,
you can enable LV_USE_SVG_ANIMATION
in lv_conf.h
.
Example
Load and render SVG data
C code
View on GitHub#include "../../lv_examples.h"
#if LV_BUILD_EXAMPLES
#if LV_USE_SVG && LV_USE_VECTOR_GRAPHIC
/**
* Load an SVG data
*/
static void event_cb(lv_event_t * e)
{
static char svg_data[] = "<svg width=\"12cm\" height=\"4cm\" viewBox=\"0 0 1200 400\">"
"<circle cx=\"600\" cy=\"200\" r=\"100\" fill=\"red\" stroke=\"blue\" stroke-width=\"10\"/></svg>";
lv_layer_t * layer = lv_event_get_layer(e);
lv_svg_node_t * svg = lv_svg_load_data(svg_data, sizeof(svg_data) / sizeof(char));
lv_draw_svg(layer, svg);
lv_svg_node_delete(svg);
}
void lv_example_svg_1(void)
{
lv_obj_add_event_cb(lv_screen_active(), event_cb, LV_EVENT_DRAW_MAIN, NULL);
}
#else
void lv_example_svg_1(void)
{
/*TODO
*fallback for online examples*/
lv_obj_t * label = lv_label_create(lv_screen_active());
lv_label_set_text(label, "SVG is not enabled");
lv_obj_center(label);
}
#endif
#endif
lv_svg_node_t * svg_doc;
const char* svg_data = "<svg><rect x=\"0\" y=\"0\" width=\"100\" height=\"100\"/></svg>";
/* Create an SVG DOM tree*/
svg_doc = lv_svg_load_data(svg_data, svg_len);
...
/* Draw SVG image*/
lv_draw_svg(layer, svg_doc);
...
/* Release the DOM tree*/
lv_svg_node_delete(svg_doc);