里飞网

 找回密码
 立即注册
查看: 11977|回复: 22
打印 上一主题 下一主题

LvglFontTool字体工具更新V0.3版本

[复制链接]

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
跳转到指定楼层
楼主
发表于 2020-2-17 17:33:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LvglFontTool更新V0.3
V0.3
1、增加AWESOME图标的支持。
2、增加导入文本文件。
3、修复使用XBF外部FLASH字体出错的BUG。
4、去除字模上下空白内容,节省了空间。


Awesome使用说明:
1、鼠标选中图标,双击添加到右测,或选中后使用下方添加选中图标按钮。
2、删除图标可以直接在右测编辑删除。
3、最终转换的是右测添加的图标。
4、Awesome版本更新时可以更换awesome目录下的2个文件即可更新。
5、调用方法是直接用图标对应的编码,如

   "\uF000","ABC\uF001","中\uF003国"。








LvglFontTool_V0.3.rar (7.34 MB, 下载次数: 10446)



回复

使用道具 举报

0

主题

2

帖子

18

积分

新手上路

Rank: 1

积分
18
QQ
沙发
发表于 2020-5-26 11:19:38 | 只看该作者
不知道7.0的字体有没有改什么内容
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
板凳
 楼主| 发表于 2020-5-26 11:28:59 | 只看该作者
lovelessing 发表于 2020-5-26 11:19
不知道7.0的字体有没有改什么内容

字体应该没有改变,你可以测试一下,论坛可能回复不及时,如需急回复可以直接联系我QQ
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
地板
发表于 2020-7-8 11:59:01 | 只看该作者
阿里兄,您好!
首先为您这个工具点个赞!
然后提个BUG——转换几个汉字,截取部分内容:
static const uint16_t unicode_list_1[] = {
    0x4e2a,        /*(个)*/
    0x51e0,        /*(几)*/
    0x5b57,        /*(字)*/
    0x6d4b,        /*(测)*/
    0x8bd5,        /*(试)*/
    0x0000,    /*End indicator*/
};


static const lv_font_fmt_txt_cmap_t cmaps[] = {
    {
        .range_start = 20010,
        .range_length = 5,
        .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY,
        .glyph_id_start = 0,
        .unicode_list = unicode_list_1,
        .glyph_id_ofs_list = NULL,
        .list_length = 5,
    }
};
您的cmap里,range_length和list_length均为5,这是不对的。
list_length是索引表的长度,有5个汉字,这没问题。
range_length,LVGL源码中注释: Number of Unicode characters related to this range.   Last Unicode character = range_start + range_length - 1
所以range_start 应该是0x3DA9。

请知悉
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
5#
 楼主| 发表于 2020-7-8 12:47:33 | 只看该作者
Spirit 发表于 2020-7-8 11:59
阿里兄,您好!
首先为您这个工具点个赞!
然后提个BUG——转换几个汉字,截取部分内容:

非常感谢您的意见,只是__user_font_get_glyph_dsc__user_font_get_bitmap是我自己实现的函数,里面用到的变量等符合我的方法才是关键,range_length我并没有用到,所以它为什么值都没有关系的。
回复

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
6#
发表于 2020-8-11 20:48:32 | 只看该作者
阿里兄,我测试了一下自定义中文,勾选自动加入英文和数字,XBF字体内部大数组方式(此方式输出英文正常,但是中文不能输出显示)。

PS:此软件非常好用!!!

微信截图_20200811204521.png (37.06 KB, 下载次数: 1396)

微信截图_20200811204521.png
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
7#
 楼主| 发表于 2020-8-12 09:00:36 | 只看该作者
lzyeedog 发表于 2020-8-11 20:48
阿里兄,我测试了一下自定义中文,勾选自动加入英文和数字,XBF字体内部大数组方式(此方式输出英文正常, ...



测试没有问题,估计你是没有启用UTF8编码吧,使用中文的C文件必需是UTF8编码,另如果是 VS模拟器仿真,加入预编译指令解决#pragma execution_character_set("utf-8")
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
8#
 楼主| 发表于 2020-8-12 09:07:51 | 只看该作者
http://www.armbbs.cn/forum.php?m ... 03&highlight=VS2019

VS的问题也可以参考硬汉兄这里设置的方法。
回复

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
9#
发表于 2020-8-12 10:47:50 | 只看该作者
阿里兄 发表于 2020-8-12 09:00
测试没有问题,估计你是没有启用UTF8编码吧,使用中文的C文件必需是UTF8编码,另如果是 VS模拟器仿真, ...

我没用模拟器,使用内部字体方式是可以正常显示中英文的。但是使用xbf大数组方式,中文不行。至于UTF8那个,lv_conf.h已经配置了UTF8编码。显示字符串的没有使用UTF8编码,我使用转义字符方式
回复

使用道具 举报

0

主题

5

帖子

16

积分

新手上路

Rank: 1

积分
16
10#
发表于 2020-12-24 09:38:26 | 只看该作者
你好,麻烦问下在tab中怎么显示中文,我用的是LVGL6,在label可以正常显示,在tab就不行,属性我也设置了
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
11#
 楼主| 发表于 2020-12-24 09:43:31 | 只看该作者
vdadvs 发表于 2020-12-24 09:38
你好,麻烦问下在tab中怎么显示中文,我用的是LVGL6,在label可以正常显示,在tab就不行,属性我也设置了 ...

你设置默认字体为中文能不能显示,我这些例子显示都是直接改默认字体为中文的,tab设对字体应该也能显示的。
回复

使用道具 举报

0

主题

5

帖子

16

积分

新手上路

Rank: 1

积分
16
12#
发表于 2020-12-24 09:48:56 | 只看该作者
阿里兄 发表于 2020-12-24 09:43
你设置默认字体为中文能不能显示,我这些例子显示都是直接改默认字体为中文的,tab设对字体应该也能显示 ...

麻烦问下,这个是修改哪个配置参数,谢谢
回复

使用道具 举报

0

主题

5

帖子

16

积分

新手上路

Rank: 1

积分
16
13#
发表于 2020-12-24 09:53:30 | 只看该作者
阿里兄 发表于 2020-12-24 09:43
你设置默认字体为中文能不能显示,我这些例子显示都是直接改默认字体为中文的,tab设对字体应该也能显示 ...

我看网上说是修改LV_FONT_SIMSUN_16_CJK这个参数,LVGL6这版好像没有这个参数
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
14#
 楼主| 发表于 2020-12-24 10:01:44 | 只看该作者
vdadvs 发表于 2020-12-24 09:53
我看网上说是修改LV_FONT_SIMSUN_16_CJK这个参数,LVGL6这版好像没有这个参数

改默认字体在lv_conf.h配置文件里面,如下:

实际如何更改tab的字体,你就得在网上再找找了。
回复

使用道具 举报

0

主题

5

帖子

16

积分

新手上路

Rank: 1

积分
16
15#
发表于 2020-12-24 10:40:06 | 只看该作者
阿里兄 发表于 2020-12-24 10:01
改默认字体在lv_conf.h配置文件里面,如下:

实际如何更改tab的字体,你就得在网上再找找了。

是可以的,感谢
回复

使用道具 举报

0

主题

5

帖子

16

积分

新手上路

Rank: 1

积分
16
16#
发表于 2020-12-25 11:24:49 | 只看该作者
你好,再请教下,我现在LVGL是v7版本,我把默认字体改成了中文,可以正常显示中文,但是在使用键盘的时候键盘上的图标都没了,想问下您是否知道这个问题,还是我的设置有问题,我的设置是如下:
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(myFont)
#define LV_THEME_DEFAULT_FONT_NORMAL        &myFont
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
17#
 楼主| 发表于 2020-12-25 11:34:37 | 只看该作者
vdadvs 发表于 2020-12-25 11:24
你好,再请教下,我现在LVGL是v7版本,我把默认字体改成了中文,可以正常显示中文,但是在使用键盘的时候键 ...

这是因为你做的字体没有增加图标啊。

回复

使用道具 举报

0

主题

7

帖子

26

积分

新手上路

Rank: 1

积分
26
18#
发表于 2021-6-21 10:30:11 | 只看该作者
本帖最后由 wucq 于 2021-6-21 11:12 编辑

阿里哥,我现在用vs2019跑V7.20版本的LVGL,用V0.3版本的字体工具生成字库文件来显示中文,结果没有显示中文出来。代码如下:
LV_FONT_DECLARE(myFont_10)

#define LV_THEME_DEFAULT_FONT_NORMAL        &myFont_10

#pragma execution_character_set("utf-8")

const char* str1 = "hello长风破浪会有时直挂云帆济沧海";
lv_obj_t* lable_week = lv_label_create(img_bp, NULL);
lv_label_set_text(lable_week, str1);
lv_obj_set_pos(lable_week, 170, 114);
lv_obj_set_style_local_text_color(lable_week, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
lv_obj_set_style_local_text_font(lable_week, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_theme_get_font_normal());

这个执行只显示了hello这个英文,中文没有显示,请教还缺少哪些处理呢?中文字符所在c文件我有转成UTF-8.

但是我在keil里面却实现了中文的显示。代码是一样的。
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
19#
 楼主| 发表于 2021-6-21 14:47:19 | 只看该作者
wucq 发表于 2021-6-21 10:30
阿里哥,我现在用vs2019跑V7.20版本的LVGL,用V0.3版本的字体工具生成字库文件来显示中文,结果没有显示中 ...

LVGL 7设置字体的方式和6有很大的不同,你的基本是没有设置对字体。给一个参考,LVGL我基本没有使用过,怎么用字体你还是参考官方的例程了。
  1. lv_theme_t * th = lv_theme_material_init(LV_COLOR_BLACK, LV_COLOR_BLACK,0,
  2.                                              &myfont1, &myfont1,
  3.                                              &myfont1, &myfont1);
  4.     lv_theme_set_act(th);

  5.     lv_obj_t *scr = lv_disp_get_scr_act(NULL);/* 获取当前屏幕 */
  6.     lv_scr_load(scr);

  7.     lv_obj_t *label1 = lv_label_create(scr,NULL); /* 创建 label 控件 */
  8.     lv_obj_set_pos(label1,0,0); /* 设置控件的坐标 */
  9.     lv_label_set_text(label1,"里飞网:你好"); /* 设置文字 */
  10.     lv_obj_align(label1,NULL,LV_ALIGN_IN_TOP_MID,0,100); /* 设置控件的对齐方式-相对坐标 */
复制代码
回复

使用道具 举报

0

主题

3

帖子

12

积分

新手上路

Rank: 1

积分
12
20#
发表于 2021-9-1 22:48:25 | 只看该作者
阿里兄 发表于 2021-6-21 14:47
LVGL 7设置字体的方式和6有很大的不同,你的基本是没有设置对字体。给一个参考,LVGL我基本没有使用过, ...

阿里哥,您好我现在用lvgl7.11然后用的咱们0.3生成字库,在用内部调用,不显示汉字呢,就是使用您的这个程序。
lv_style_init(&label_style);
    lv_style_set_bg_opa(&label_style, LV_STATE_DEFAULT, LV_OPA_COVER);
    lv_style_set_text_font(&label_style, LV_STATE_DEFAULT, &myFont);

    lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_COLOR_BLACK, LV_COLOR_BLACK,
                                                 0, &myFont, &myFont,
                                                 &myFont, &myFont);
    lv_theme_set_act(th);

    lv_obj_t *scr = lv_disp_get_scr_act(NULL);/* 获取当前屏幕 */
    lv_scr_load(scr);

    lv_obj_t *label1 = lv_label_create(scr,NULL); /* 创建 label 控件 */
    //lv_obj_set_style(label1,&style_label); /* 为控件设置新的 style */
    lv_obj_set_pos(label1,0,0); /* 设置控件的坐标 */
    lv_label_set_text(label1,"Hello值"); /* 设置文字 */
    lv_obj_align(label1,NULL,LV_ALIGN_IN_TOP_MID,0,100); /* 设置控件的对齐方式-相对坐标 */
回复

使用道具 举报

45

主题

291

帖子

2500

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2500
21#
 楼主| 发表于 2021-9-1 22:52:54 | 只看该作者
小脑虎 发表于 2021-9-1 22:48
阿里哥,您好我现在用lvgl7.11然后用的咱们0.3生成字库,在用内部调用,不显示汉字呢,就是使用您的这个 ...

1、注意软件上面的帮助-说明。
2、使用汉字的这个C文件是否为UTF8编码,LVGL只能使用UTF8编码。
3、MDK无需更换编码,使用ANSI即可。具体看软件上面的帮助-说明。
回复

使用道具 举报

0

主题

3

帖子

12

积分

新手上路

Rank: 1

积分
12
22#
发表于 2021-9-2 15:30:45 | 只看该作者
阿里兄 发表于 2021-9-1 22:52
1、注意软件上面的帮助-说明。
2、使用汉字的这个C文件是否为UTF8编码,LVGL只能使用UTF8编码。
3、MDK无 ...

是的啊,我用正点的程序跑使用出来的代码就可以显示,我把他的程序lvgl移植了7.11,一点汉字都没有。您帮忙看看

template.rar

2.74 MB, 下载次数: 1236

回复

使用道具 举报

0

主题

3

帖子

12

积分

新手上路

Rank: 1

积分
12
23#
发表于 2021-9-2 15:47:13 | 只看该作者
小脑虎 发表于 2021-9-2 15:30
是的啊,我用正点的程序跑使用出来的代码就可以显示,我把他的程序lvgl移植了7.11,一点汉字都没有。您帮 ...

感谢阿里哥帮我解决,使用的文件要改成UFT8的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|里飞网  

GMT+8, 2024-4-29 06:18 , Processed in 0.147111 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表