lvgl v9.1版本使用lvglFontTool V0.4生成的外部bin字库

前言

有关于LvglFontTool V0.4(网址:[http://dz.lfly.xyz/forum.php?mod=viewthread&tid=24&extra=page%3D1])
生成的外部字体的方法请参考其他人的文章(网上有多教程),
目前为止LvglFontTool V0.4最高只能生成对v6版本的内部字库支持,
所以生成的c文件未对v9版本适配,(目前为止我没有找到关于v9版本的适配,所以写一下)。
本文章主要是针对LvglFontTool V0.4生成的外部bin字库的c文件对lvgl v9.1版本进行适配,
(目前测试可以,暂未发现bug)

提示:以下是本篇文章正文内容,下面案例可供参考

一、代码修改

主要修改:__user_font_get_bitmap、__user_font_get_glyph_dsc和生成字体的结构体const lv_font_t myFontSongJianTi16,代码修改如下:

static const uint8_t opa4_table[16] = {0,  17, 34,  51,
                                       68, 85, 102, 119,
                                       136, 153, 170, 187,
                                       204, 221, 238, 255
                                      };

static const uint8_t opa2_table[4] = {0, 85, 170, 255};

// lv_draw_buf_t * draw_buf 看了原版的参数,这里都不用填
static const void * __user_font_get_bitmap(lv_font_glyph_dsc_t * g_dsc, lv_draw_buf_t * draw_buf)
{
    uint32_t unicode_letter = g_dsc->gid.index;
    uint8_t * bitmap_out = draw_buf->data;
    const lv_font_t *font = g_dsc->resolved_font;
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if(unicode_letter >__g_xbf_hd.max || unicode_letter<__g_xbf_hd.min ) {
        return NULL;
    }

    uint32_t unicode_offset = sizeof(x_header_t)+(unicode_letter-__g_xbf_hd.min)*4;
    uint32_t *p_pos = (uint32_t *)__user_font_getdata(unicode_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值