里飞网

 找回密码
 立即注册

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

查看数: 72359 | 评论数: 112 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-8-14 18:28

正文摘要:

LvglFontTool更新V0.4 V0.4 1、增加FreeType TTF的支持,生成抗锯齿字体更加圆润、光滑。 2、修复后面AWESOME图标不能添加问题。 3、优化了下查找算法。 4、增加了直接存文件的选项,解决文字多时转换死机或慢的问 ...

回复

郭坤豪 发表于 2024-11-12 18:21:03
lovemengx 发表于 2021-10-14 17:47
LZ,我们使用的 LVGL 8.0.0 版本,运行在 Linux 系统中,使用 LvglFontTool V0.4 生成的 XBF 外部 BIN 文件 ...

你好,我遇到了同样的问题,我确定字库加了中文,请问你最后怎么解决的
hjhj7591418 发表于 2024-5-21 08:29:53
阿里兄 发表于 2021-8-24 23:54
外部XBF字体可以直接支持,内部字体要修改一点点。

//Roboto,,-1
//字模高度:35
//内部字体
//使用排序和二分查表
lv_font_t FNT_R30 = {
    .dsc = &font_dsc,
    .get_glyph_bitmap = __user_font_get_bitmap,
    .get_glyph_dsc = __user_font_get_glyph_dsc,
    .line_height = 35,
    .base_line = 0,
};

还要把__user_font_get_bitmap, __user_font_get_glyph_dsc, 这两个函数换成lv_font_get_glyph_dsc_fmt_txt,lv_font_get_bitmap_fmt_txt, 才行吧???
阿里兄 发表于 2024-4-23 14:03:38
hjhj7591418 发表于 2024-4-23 13:52
阿里兄,我LVGL使用V8.3.5版本,使用LvglFontTool_V0.4导出“XBF字体,外部bin文件”使用,
但是卡死在“lv ...

很大可能是你读取函数有问题,建议你先使用内部XBF测试一下先,XBF是支持的。
hjhj7591418 发表于 2024-4-23 13:52:56
阿里兄,我LVGL使用V8.3.5版本,使用LvglFontTool_V0.4导出“XBF字体,外部bin文件”使用,
但是卡死在“lv_obj_set_style_text_font(Labal, &RobotoR20, 0);”这句。

请问这是不支持V8以上版本吗??
阿里兄 发表于 2024-4-8 21:59:11
limhanfeng 发表于 2024-4-8 15:08
阿里兄 我用XBF字体,外部bin文件,才10个阿拉伯数字10个英文字符4个汉字,抗锯齿开到4,结果生成的bin文件就有 ...

XBF格式,是使用你所输入文字中unicode最大值和最小值之间所有字符都会添加到索引,用于快速查表,也就是空间换时间的做法,XBF格式字体适用于有大空间的场景使用。
limhanfeng 发表于 2024-4-8 15:08:25
阿里兄 我用XBF字体,外部bin文件,才10个阿拉伯数字10个英文字符4个汉字,抗锯齿开到4,结果生成的bin文件就有120KB,这正常吗 二进制文件这么大的吗
limhanfeng 发表于 2024-4-8 09:39:56
admin 发表于 2024-4-7 16:56
使用内部字体是否正常?这种情况基本是读取或BIN文件写到FLASH时有问题。

重新试了下,发现使用XBF字体,内部大数组也是同样现象,而使用官网的字体转换是能正常显示的
limhanfeng 发表于 2024-4-7 17:35:50
admin 发表于 2024-4-7 16:56
使用内部字体是否正常?这种情况基本是读取或BIN文件写到FLASH时有问题。

使用内部.c文件是正常的
admin 发表于 2024-4-7 16:56:00
limhanfeng 发表于 2024-4-7 15:54
这个我复制错了 重新修改了下 麻烦大佬再看下呗

使用内部字体是否正常?这种情况基本是读取或BIN文件写到FLASH时有问题。
limhanfeng 发表于 2024-4-7 15:54:59
admin 发表于 2024-4-7 15:48
__user_font_getdata中的bFirstIn有问题,init_font也重新定义了一个bFirstIn,这两个都是static属于只对 ...

这个我复制错了 重新修改了下 麻烦大佬再看下呗
admin 发表于 2024-4-7 15:48:43
limhanfeng 发表于 2024-4-7 15:43
我采用XBF字体,外部bin文件,放到了linux系统中的flash中,我的LVGL是8.0.0版本,经过烧录后,UI符号和中英文都 ...

__user_font_getdata中的bFirstIn有问题,init_font也重新定义了一个bFirstIn,这两个都是static属于只对本函数内有效,它们没有任何关系,要换成全局变量,你这C语言不过关啊
limhanfeng 发表于 2024-4-7 15:43:04
本帖最后由 limhanfeng 于 2024-4-7 15:47 编辑

我采用XBF字体,外部bin文件,放到了linux系统中的flash中,我的LVGL是8.0.0版本,经过烧录后,UI符号和中英文都没有显示,大佬门帮看下会是为何原因呀
修改__user_font_getdata接口实现如下:
  1. char *Font_buff = NULL;

  2. static void init_font(void)
  3. {
  4.         FILE *fileFont = fopen("/mnt/custom/data/Picture/lv_font_siyuansongti_normal.bin", "r");
  5.         if (fileFont == NULL)
  6.         {
  7.                 printf("Failed to open file for reading");
  8.                 return;
  9.         }
  10.         fseek(fileFont, 0, SEEK_END);
  11.         long lFontSize = ftell(fileFont);
  12.         rewind(fileFont);
  13.         Font_buff = (char *)malloc(sizeof(char) * lFontSize);
  14.         fread(Font_buff, 1, lFontSize, fileFont);
  15.         fclose(fileFont);
  16. }

  17. static uint8_t *__user_font_getdata(int offset, int size)
  18. {
  19.         //如字模保存在SPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
  20.         //如字模已加载到SDRAM,直接返回偏移地址即可如:return (uint8_t*)(sdram_fontddr+offset);
  21.         static bool bFirstIn = true;
  22.         if (bFirstIn)
  23.         {
  24.                 bFirstIn = false;
  25.                 init_font();
  26.         }
  27.         return (uint8_t*)(Font_buff + offset);
  28. }
复制代码

字体为外部的思源宋体,生成前的设置如下:



阿里兄 发表于 2024-4-5 19:19:03
sutaojin 发表于 2024-3-15 14:01
楼主,0.5测试版本里面,还是存在字体大并且字数多的时候转换卡死的情况

字体大建议使用0.4版本的XBF格式。
sutaojin 发表于 2024-3-15 14:01:34
楼主,0.5测试版本里面,还是存在字体大并且字数多的时候转换卡死的情况
阿里兄 发表于 2024-3-11 18:47:02
Juszou 发表于 2024-3-11 18:30
比如阿拉伯语,拉丁文,缅甸文,似乎再左边都看不到

左边看不到,那就是字体没有这些文字,可以选宋体或微软雅黑试试;
Juszou 发表于 2024-3-11 18:30:57
阿里兄 发表于 2024-3-11 18:29
这需要看你选的字体支持字符情况;字符多生成也很慢、可以直接生成文件;有部分是双unicode编码的文字可 ...

比如阿拉伯语,拉丁文,缅甸文,似乎再左边都看不到
阿里兄 发表于 2024-3-11 18:29:00
Juszou 发表于 2024-3-11 18:20
你好,我想知道 v0.4 支持阿拉伯语等除了中日韩英文以外的语言吗?我是用 python 脚本写入 0x0-0xFFFF 所有 ...

这需要看你选的字体支持字符情况;字符多生成也很慢、可以直接生成文件;有部分是双unicode编码的文字可能不支持。
Juszou 发表于 2024-3-11 18:20:51
你好,我想知道 v0.4 支持阿拉伯语等除了中日韩英文以外的语言吗?我是用 python 脚本写入 0x0-0xFFFF 所有字符,但是工具并不能显示,并且也无法生成;工具是有最大的字符数量限制,还是语言限制?
阿里兄 发表于 2024-1-9 15:16:09

字库是乱码的
阿里兄 发表于 2024-1-9 11:34:59
yuechaofu 发表于 2024-1-9 11:33
附件是我测试的中文字库,帮忙看看有问题,谢谢

没看到附件,你可以先用内部字体进行测试。
yuechaofu 发表于 2024-1-9 11:33:28
附件是我测试的中文字库,帮忙看看有问题,谢谢
yuechaofu 发表于 2024-1-9 11:19:22
lovemengx 发表于 2021-10-16 11:19
感谢大佬,原因是因为所选的字体不包含中文。按照大佬说的话,带中文至少 1M 以上。大伙如果也有遇到这种 ...

我的字库2MB多,包含了中文,还是显示不出来,系统的自带的中文字库可以,请问这个是什么问题?
feziLee 发表于 2023-12-12 11:08:13
阿里兄 发表于 2023-12-12 11:06
就结构体变了一下,这个想一下就能想到了

好的好的,我再去看看,感谢回复
feziLee 发表于 2023-12-12 11:00:43
阿里兄 发表于 2021-8-24 23:54
外部XBF字体可以直接支持,内部字体要修改一点点。

下边用到这两个参数的怎么处理啊
阿里兄 发表于 2022-12-28 08:32:39
duan 发表于 2022-12-25 16:23
阿里哥,我用文件系统读的很慢,正常吗,20几个字读了10S

尽量不要使用文件系统,如果字库放文件系统,那这个字库文件打开后不能关闭,因为字库读取是非常频繁的,当然最好不要用文件系统,直接spi读会好很多,直接把字库文件读到内存就更好了。
duan 发表于 2022-12-25 16:23:29
本帖最后由 duan 于 2022-12-25 16:29 编辑
阿里兄 发表于 2021-10-30 17:17
可以的,打开一次,不关闭文件。不过建议用spi flash,不使用文件系统。

阿里哥,我用文件系统读的很慢,正常吗,20几个字读了10S
find_shell 发表于 2022-7-25 21:12:26
感谢楼主抽空回答;我自己在摸索摸索;
阿里兄 发表于 2022-7-23 11:52:06
find_shell 发表于 2022-7-23 11:32
感谢楼主抽空回复,但是我去测试了下;您说的“宋体”是指的哪个字库呢?我在当前系统没有找到您说的类似的 ...

可能是QT处理的,并不是默认单一个TTF。
find_shell 发表于 2022-7-23 11:32:23
感谢楼主抽空回复,但是我去测试了下;您说的“宋体”是指的哪个字库呢?我在当前系统没有找到您说的类似的;是不是该字库已经集成到了您这个工具里面了?你说的这个宋体字库文件可以发下我邮箱(wenjinzaime@163.com)或则给一个下载地址吗?谢谢;

font2.png (206.58 KB, 下载次数: 3399)

font2.png

font1.png (42.48 KB, 下载次数: 3424)

font1.png

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

GMT+8, 2024-11-23 12:29 , Processed in 0.106185 second(s), 7 queries , File On.

Powered by Discuz! X3.3

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

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