Image font (imgfont)¶
Draw image in label or span obj with imgfont. This is often used to display Unicode emoji icons in text. Supported image formats: determined by LVGL image decoder.
Usage¶
Enable LV_USE_IMGFONT
in lv_conf.h
.
To create a new imgfont use lv_imgfont_create(height, path_cb)
.
height
used to indicate the size of a imgfont.
path_cb
Used to get the image path of the specified unicode.
Use lv_imgfont_destroy(imgfont)
to destroy a imgfont that is no longer used.
Example¶
Use emojis in a text.¶
C code
GitHub#include "../../lv_examples.h"
#include <stdio.h>
#if LV_BUILD_EXAMPLES
#if LV_USE_IMGFONT
LV_IMG_DECLARE(emoji_F617)
static bool get_imgfont_path(const lv_font_t * font, void * img_src,
uint16_t len, uint32_t unicode, uint32_t unicode_next)
{
LV_UNUSED(font);
LV_UNUSED(unicode_next);
LV_ASSERT_NULL(img_src);
if(unicode == 0xF617) {
memcpy(img_src, &emoji_F617, sizeof(lv_img_dsc_t));
}
else {
char * path = (char *)img_src;
snprintf(path, len, "%s/%04X.%s", "A:lvgl/examples/assets/emoji", unicode, "png");
path[len - 1] = '\0';
}
return true;
}
/**
* draw img in label or span obj
*/
void lv_example_imgfont_1(void)
{
lv_font_t * imgfont = lv_imgfont_create(80, get_imgfont_path);
if(imgfont == NULL) {
LV_LOG_ERROR("imgfont init error");
}
imgfont->fallback = LV_FONT_DEFAULT;
lv_obj_t * label1 = lv_label_create(lv_scr_act());
lv_label_set_text(label1, "12\uF600\uF617AB");
lv_obj_set_style_text_font(label1, imgfont, LV_PART_MAIN);
lv_obj_center(label1);
}
#else
void lv_example_imgfont_1(void)
{
lv_obj_t * label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "imgfont is not installed");
lv_obj_center(label);
}
#endif
#endif
Error encountered while trying to open /home/runner/work/100ask_lvgl_docs/100ask_lvgl_docs/examples/others/imgfont/lv_example_imgfont_1.py
API¶
Typedefs
-
typedef bool (*lv_get_imgfont_path_cb_t)(const lv_font_t *font, void *img_src, uint16_t len, uint32_t unicode, uint32_t unicode_next)¶
Functions
-
lv_font_t *lv_imgfont_create(uint16_t height, lv_get_imgfont_path_cb_t path_cb)¶
Creates a image font with info parameter specified.
- Parameters
height -- font size
path_cb -- a function to get the image path name of character.
- Returns
pointer to the new imgfont or NULL if create error.
-
void lv_imgfont_destroy(lv_font_t *font)¶
Destroy a image font that has been created.
- Parameters
font -- pointer to image font handle.