里飞网

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

LvglFontTool字体工具V0.5测试版

[复制链接]

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
跳转到指定楼层
楼主
发表于 2022-4-8 17:16:45 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 阿里兄 于 2022-4-22 14:10 编辑

LvglFontTool字体工具V0.5测试版,发出来给大家用一用。

LvglFontTool字体工具V0.5测试版:
1、增加对LVGL V8.0以上支持。
2、取消TTF文件字体,其实QT自带TTF处理,效果一样好的,还不用找TTF文件。


图片就不上了。

LvglFontTool_V0.5测试版.zip (9.12 MB, 下载次数: 12377)

发现XBF内部字体和XBF外部BIN字体不能正常显示,有需要的XBF字体的请先使用0.4版本吧。
回复

使用道具 举报

0

主题

5

帖子

28

积分

新手上路

Rank: 1

积分
28
43#
发表于 7 天前 | 只看该作者
阿里兄 发表于 2024-4-26 09:51
这个想法是不错,后续考虑增加,但是目前暂时没有时间更新。

期待更新
lvgl官方脚本可以合并多个。
但是同一个字体文件,显示的效果不一样。
感觉阿里兄制作的工具显示的效果更加好看
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
42#
 楼主| 发表于 7 天前 | 只看该作者
qsherong 发表于 2024-4-26 09:42
请教下,能不能将两个字体合并。
有些字体没有中文,但英文看起来比较好看
有些字体有中文,但英文不好看

这个想法是不错,后续考虑增加,但是目前暂时没有时间更新。
回复

使用道具 举报

0

主题

5

帖子

28

积分

新手上路

Rank: 1

积分
28
41#
发表于 7 天前 | 只看该作者
请教下,能不能将两个字体合并。
有些字体没有中文,但英文看起来比较好看
有些字体有中文,但英文不好看
例如英文用A字体,中文用B字体
回复

使用道具 举报

0

主题

5

帖子

28

积分

新手上路

Rank: 1

积分
28
40#
发表于 2024-4-24 10:15:28 | 只看该作者
qsherong 发表于 2024-4-24 09:35
我之前用脚本生成的有这个参数 --no-kerning 。记得是有作用的
例如我想显示时间 如12:05 中间的冒号间隔 ...

测试了,确实跟字体有关系。
回复

使用道具 举报

0

主题

5

帖子

28

积分

新手上路

Rank: 1

积分
28
39#
发表于 2024-4-24 09:35:35 | 只看该作者
阿里兄 发表于 2024-4-23 16:47
这个目前不可以,和你选择使用的字体有关。

我之前用脚本生成的有这个参数 --no-kerning 。记得是有作用的
例如我想显示时间 如12:05 中间的冒号间隔闪烁,当显示空格的时候,整个label都缩小了,
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
38#
 楼主| 发表于 2024-4-23 16:47:27 | 只看该作者
qsherong 发表于 2024-4-23 16:30
字体可变间距可以关闭吗

这个目前不可以,和你选择使用的字体有关。
回复

使用道具 举报

0

主题

5

帖子

28

积分

新手上路

Rank: 1

积分
28
37#
发表于 2024-4-23 16:30:26 | 只看该作者
字体可变间距可以关闭吗
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
36#
 楼主| 发表于 2023-11-14 13:24:03 | 只看该作者
cgrrty 发表于 2023-11-14 09:46
lvgl的作者也是没时间,都是一些爱好者帮更新维护,你也可以放工具添加功能出来让其他爱好者帮忙添加  ...

暂时还没有这个打算。
回复

使用道具 举报

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
35#
发表于 2023-11-14 09:46:06 | 只看该作者
阿里兄 发表于 2023-11-2 15:56
这个就是文件合并了,jflash就支持文件合并,且可以自定义Pos位置;字体工具上增加也不是不可以,只是没 ...

lvgl的作者也是没时间,都是一些爱好者帮更新维护,你也可以放工具添加功能出来让其他爱好者帮忙添加
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
34#
 楼主| 发表于 2023-11-2 15:56:45 | 只看该作者
cgrrty 发表于 2023-10-26 08:26
个人感觉这个软件不错,很好用,现在只有一个字体高度生成xbf外部BIN文件,如果要多种字体高度的BIN文件还 ...

这个就是文件合并了,jflash就支持文件合并,且可以自定义Pos位置;字体工具上增加也不是不可以,只是没有时间搞啊
回复

使用道具 举报

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
33#
发表于 2023-10-26 08:26:49 | 只看该作者
个人感觉这个软件不错,很好用,现在只有一个字体高度生成xbf外部BIN文件,如果要多种字体高度的BIN文件还要其他修改添加BIN文件的 软件,还要修改pos地址,如能添加这个功能就更好了
回复

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
32#
发表于 2023-4-21 09:24:02 | 只看该作者
阿里兄 发表于 2023-4-20 17:46
你是用了XBF字体,XBF字体格式是把你所有字符里面最小unicode与最大unicode之间的字符表都嵌入到字库内, ...

感谢版主解惑,使用内部字体没办法升级有点麻烦;那再想想办法吧
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
31#
 楼主| 发表于 2023-4-20 17:46:54 | 只看该作者
本帖最后由 阿里兄 于 2023-4-20 17:49 编辑
smallzz 发表于 2023-4-20 17:39
咨询下楼主,为何用阿里字库只转了 字符+数字+"天气番茄钟设置闹钟小夜灯专注中休息未开始心动相册“加这 ...

你是用了XBF字体,XBF字体格式是把你所有字符里面最小unicode与最大unicode之间的字符表都嵌入到字库内,以此达到最快查表速度。如需要小容量建议使用内部字体。
回复

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
30#
发表于 2023-4-20 17:39:46 | 只看该作者

咨询下楼主,为何用阿里字库只转了 字符+数字+"天气番茄钟设置闹钟小夜灯专注中休息未开始心动相册“加这几个汉字生成的bin文件包高达160Kb;请问这是正常现象嘛?
Alimama_ShuHeiTi_Bold.rar (671.13 KB, 下载次数: 687)
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
29#
 楼主| 发表于 2023-4-2 21:15:27 | 只看该作者
jundg1987 发表于 2023-4-1 18:59
1.awesome中在【fontawesome-webfont.ttf】中增加的字库字符,无法在【插入awesome图标】-->【设置图标字体 ...
  1. http://dz.lfly.xyz/forum.php?mod=viewthread&tid=31&extra=page%3D2
复制代码


参考一下这里
回复

使用道具 举报

0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
28#
发表于 2023-4-1 18:59:54 | 只看该作者
1.awesome中在【fontawesome-webfont.ttf】中增加的字库字符,无法在【插入awesome图标】-->【设置图标字体】中显示出来。但字库生产的时候是可以正常使用的。
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
27#
 楼主| 发表于 2023-3-13 22:36:28 | 只看该作者
sniper_15 发表于 2023-3-13 15:13
哥哥 ,你还没过完年啊,大家都等不及了,要不开源大家一起搞吧

哈哈,忙着搞项目
回复

使用道具 举报

0

主题

6

帖子

34

积分

新手上路

Rank: 1

积分
34
26#
发表于 2023-3-13 15:13:31 | 只看该作者
哥哥 ,你还没过完年啊,大家都等不及了,要不开源大家一起搞吧
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
25#
 楼主| 发表于 2023-1-11 16:05:55 | 只看该作者

还没完善,看看过年有没有时间搞一搞了。
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
24#
发表于 2023-1-11 16:04:03 | 只看该作者
牛逼了,太好了
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
23#
 楼主| 发表于 2022-10-8 08:26:46 | 只看该作者
fan 发表于 2022-10-7 15:03
生成的line_height值为0,导致文字无法显示

测试版XFB字体是这样,没有修复,你手动改一下高度也是可以的,可以切换回内部字体看高度是多少。
回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
22#
发表于 2022-10-7 15:03:58 | 只看该作者
生成的line_height值为0,导致文字无法显示

内网通截图20221007145838.png (93.48 KB, 下载次数: 581)

内网通截图20221007145838.png
回复

使用道具 举报

0

主题

2

帖子

27

积分

新手上路

Rank: 1

积分
27
21#
发表于 2022-7-5 17:20:21 | 只看该作者
阿里兄 发表于 2022-7-5 16:02
感谢老哥,下次有机会加上区分;这字体结构又修改了,无语了。

不是系统自带的字体,增加了字体:思源黑体。坑锯齿 4,size: 12 ,版本V8.0以上,内部字体。

上位机LvglFontTool字体工具V0.5测试版上面显示框显示是正常的,但是用在下面LVGL显示出来好像变瘦了。

用LvglFontTool字体工具V0.3导出来的文件显示是正常。
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
20#
 楼主| 发表于 2022-7-5 16:02:09 | 只看该作者
qq295157970 发表于 2022-7-5 15:13
由于LVGL8.1以后字体增加了:uint8_t is_placeholder: 1; /** Glyph is missing. But placeholder will sti ...

感谢老哥,下次有机会加上区分;这字体结构又修改了,无语了。
回复

使用道具 举报

0

主题

2

帖子

27

积分

新手上路

Rank: 1

积分
27
19#
发表于 2022-7-5 15:13:34 | 只看该作者
由于LVGL8.1以后字体增加了:uint8_t is_placeholder: 1; /** Glyph is missing. But placeholder will still be displayed */

/** Describes the properties of a glyph.*/
typedef struct {
    const struct _lv_font_t *
        resolved_font; /**< Pointer to a font where the gylph was actually found after handling fallbacks*/
    uint16_t adv_w; /**< The glyph needs this space. Draw the next glyph after this width.*/
    uint16_t box_w; /**< Width of the glyph's bounding box*/
    uint16_t box_h; /**< Height of the glyph's bounding box*/
    int16_t ofs_x;  /**< x offset of the bounding box*/
    int16_t ofs_y;  /**< y offset of the bounding box*/
    uint8_t bpp: 4;  /**< Bit-per-pixel: 1, 2, 4, 8*/
    uint8_t is_placeholder: 1; /** Glyph is missing. But placeholder will still be displayed */
} lv_font_glyph_dsc_t;

会时不时引起这个错误:[Error] (0.291, +0)      lv_font_get_glyph_bitmap: Asserted at expression: font_p != NULL (NULL pointer)        (in lv_font.c line #51)

解决办法字体取模后要增加:dsc_out->is_placeholder = false;

static bool __user_font_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) {
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if( unicode_letter<fdsc->cmaps[0].range_start || unicode_letter>fdsc->cmaps[0].range_length ) return false;

    int i;
    if( unicode_letter==fdsc->cache->last_letter ){
        i = fdsc->cache->last_glyph_id;
    }
    else{
        i = binsearch(fdsc->cmaps[0].unicode_list, fdsc->cmaps[0].list_length, unicode_letter);
    }
    if( i != -1 ) {
        const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[i];
        fdsc->cache->last_glyph_id = i;
        fdsc->cache->last_letter = unicode_letter;
        dsc_out->adv_w = gdsc->adv_w;
        dsc_out->box_h = gdsc->box_h;
        dsc_out->box_w = gdsc->box_w;
        dsc_out->ofs_x = gdsc->ofs_x;
        dsc_out->ofs_y = gdsc->ofs_y;
        dsc_out->bpp   = fdsc->bpp;
        dsc_out->is_placeholder = false;//add202207
        return true;
    }
    return false;
}
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
18#
 楼主| 发表于 2022-7-1 17:33:32 | 只看该作者
zhaosj 发表于 2022-7-1 17:31
8.0版本
可以用V0.5测试版把全字库保存到spi flash   然后使用吗

XBF内部字体和XBF外部BIN字体不能正常显示,有需要的XBF字体的请先使用0.4版本吧。如果你是生成外部BIN字体,就先有0.4的。
回复

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

积分
20
17#
发表于 2022-7-1 17:31:34 | 只看该作者
8.0版本
可以用V0.5测试版把全字库保存到spi flash   然后使用吗
回复

使用道具 举报

0

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
16#
发表于 2022-6-30 16:29:38 | 只看该作者
阿里兄 发表于 2022-6-16 17:50
方法可以参考下这里:http://dz.lfly.xyz/forum.php?mod=viewthread&tid=31&extra=page%3D2

多谢指教
回复

使用道具 举报

45

主题

291

帖子

2508

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2508
15#
 楼主| 发表于 2022-6-30 15:02:35 | 只看该作者
iven 发表于 2022-6-30 15:00
测试发现,我如果选择18号字体,结果转换出来26号字体,怎么解呢?

字体的多少号,和像素是什么关系,我也不知道,你自己调节到合适的像素就行,字号那里还可以手动输入字号。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 07:17 , Processed in 0.184719 second(s), 7 queries , File On.

Powered by Discuz! X3.3

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

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