里飞网

 找回密码
 立即注册
楼主: 阿里兄
打印 上一主题 下一主题

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

  [复制链接]

0

主题

3

帖子

14

积分

新手上路

Rank: 1

积分
14
31#
发表于 2021-10-15 17:03:38 | 只看该作者
阿里兄 发表于 2021-10-14 17:52
代码看起来没有问题,你是转换的全字库吗,bin文件是多大

“所有汉字”、“常用汉字”、自定义汉字,都试过,不行。
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
32#
 楼主| 发表于 2021-10-15 17:08:56 | 只看该作者
lovemengx 发表于 2021-10-15 17:03
“所有汉字”、“常用汉字”、自定义汉字,都试过,不行。

bin格式没有问题的,很多人都在用;你的不显示肯定是哪里没对,选的字库是否带汉字,BIN文件的读取是否正确;加我QQ聊看:617622104
回复

使用道具 举报

0

主题

3

帖子

14

积分

新手上路

Rank: 1

积分
14
33#
发表于 2021-10-16 11:19:50 | 只看该作者
阿里兄 发表于 2021-10-15 17:08
bin格式没有问题的,很多人都在用;你的不显示肯定是哪里没对,选的字库是否带汉字,BIN文件的读取是否正 ...

感谢大佬,原因是因为所选的字体不包含中文。按照大佬说的话,带中文至少 1M 以上。大伙如果也有遇到这种情况,可以选择系统自带的字库(如新宋体)确认一下。

复盘一下我的问题:

1. 可以显示数字,英文,但是无法显示汉字,只显示口字。
   点阵:无论是外部 bin 文件还是内部数字都不行
   矢量:使用 freetype 也不行

2. 使用 LVGL 内部字库可以正常显示中文。
    使用的是 lv_font_simsun_16_cjk 字库。

3. 排查过源文件的编码格式
    无论是 UTF-8 还是 ANSI 都不行,正确的是 UTF-8。
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
34#
 楼主| 发表于 2021-10-16 11:22:54 | 只看该作者
lovemengx 发表于 2021-10-16 11:19
感谢大佬,原因是因为所选的字体不包含中文。按照大佬说的话,带中文至少 1M 以上。大伙如果也有遇到这种 ...

回复

使用道具 举报

0

主题

3

帖子

10

积分

新手上路

Rank: 1

积分
10
35#
发表于 2021-10-16 16:47:26 | 只看该作者
阿里兄 发表于 2021-10-14 23:28
不开源,多字号大小多转几下就可以了。

O... 那能请教下阿里兄,QT如何将TTF字库解成bpp可选的点阵吗?我看别人的也是用QT做的,需要像Python一样用一个什么库(或者叫包)吗?
我找了下Python有一种做法是将文字转成文字图片,然后再将图片转测点阵bitmap
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
36#
 楼主| 发表于 2021-10-16 16:51:30 | 只看该作者
wrdt24435 发表于 2021-10-16 16:47
O... 那能请教下阿里兄,QT如何将TTF字库解成bpp可选的点阵吗?我看别人的也是用QT做的,需要像Python一 ...

QT有自带的字体处理API,也可以使用FreeType字体库,文字转成图片再解析图片像素也是一种方法。你加我QQ,方法都可以告诉你。
回复

使用道具 举报

0

主题

3

帖子

10

积分

新手上路

Rank: 1

积分
10
37#
发表于 2021-10-16 17:44:38 | 只看该作者
https://github.com/lvgl/lv_font_conv
害,找了那么久,原来官网就有这离线工具,这个支持命令行执行,这个是实际项目会需要的
图形化UI用起来虽然很爽,但多人开发的时候,要的还是一键生成更爽
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
38#
 楼主| 发表于 2021-10-16 18:07:32 | 只看该作者
wrdt24435 发表于 2021-10-16 17:44
https://github.com/lvgl/lv_font_conv
害,找了那么久,原来官网就有这离线工具,这个支持命令行执行,这 ...

嗯,合适就好
回复

使用道具 举报

1

主题

6

帖子

19

积分

新手上路

Rank: 1

积分
19
39#
发表于 2021-10-24 11:00:18 | 只看该作者
  大神你好,我想请教一个问题,我用codeblocks搭的模拟环境,使用外部bin文件的方式来加载,为什么有的字只显示一半或完全不显示(不同的字体大小会有不同的显示问题)?
  我已经把 LV_FONT_FMT_TXT_LARGE 改为1了,下面是显示的效果:

2.PNG (15.91 KB, 下载次数: 3963)

2.PNG

1.PNG (16.12 KB, 下载次数: 3906)

1.PNG
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
40#
 楼主| 发表于 2021-10-24 11:21:46 | 只看该作者
MsTS 发表于 2021-10-24 11:00
大神你好,我想请教一个问题,我用codeblocks搭的模拟环境,使用外部bin文件的方式来加载,为什么有的字 ...

ttf吗,昨天一个网友也反馈了,你试试内部字体有没有问题,字形数据有没有缺失
回复

使用道具 举报

1

主题

6

帖子

19

积分

新手上路

Rank: 1

积分
19
41#
发表于 2021-10-24 11:43:36 | 只看该作者
阿里兄 发表于 2021-10-24 11:21
ttf吗,昨天一个网友也反馈了,你试试内部字体有没有问题,字形数据有没有缺失 ...

使用内部字体没有问题,但是flash没那么大呀,还是希望能通过bin文件的方式来外部导入
回复

使用道具 举报

1

主题

6

帖子

19

积分

新手上路

Rank: 1

积分
19
42#
发表于 2021-10-24 12:05:32 | 只看该作者
阿里兄 发表于 2021-10-24 11:21
ttf吗,昨天一个网友也反馈了,你试试内部字体有没有问题,字形数据有没有缺失 ...

我又尝试了别的字体,内部字体都没问题,都是外部bin文件会有问题,每种字体每种大小,都会有不同的缺失
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
43#
 楼主| 发表于 2021-10-24 12:08:21 | 只看该作者
MsTS 发表于 2021-10-24 12:05
我又尝试了别的字体,内部字体都没问题,都是外部bin文件会有问题,每种字体每种大小,都会有不同的缺失 ...

或是你读取有问题,外部bin那么多人用都没事,你贴图你是怎么转换的,还有字库bin和c上传上来,有空我试试
回复

使用道具 举报

1

主题

6

帖子

19

积分

新手上路

Rank: 1

积分
19
44#
发表于 2021-10-24 12:10:29 | 只看该作者
本帖最后由 MsTS 于 2021-10-24 12:13 编辑

这是.c和.bin文件,ttf文件我就用的系统自带的

3.png (20.65 KB, 下载次数: 3957)

3.png

myFont_26.rar

1.11 MB, 下载次数: 1945

回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
45#
 楼主| 发表于 2021-10-25 10:00:25 | 只看该作者
MsTS 发表于 2021-10-24 12:10
这是.c和.bin文件,ttf文件我就用的系统自带的

使用你上传上来的字库,实际测试没有问题。





  1. static uint8_t *__user_font_getdata(int offset, int size){
  2.     //如字模保存在SPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
  3.     //如字模已加载到SDRAM,直接返回偏移地址即可如:return (uint8_t*)(sdram_fontddr+offset);
  4.     FILE *fp = NULL;
  5.     fp = fopen("D:\\lvgl-sim\\myFont_26.bin", "rt+");
  6.     fseek(fp, offset,0);
  7.     memset(__g_font_buf,0,390);
  8.     fread(__g_font_buf, size, 1, fp);
  9.     fclose(fp);
  10.     return __g_font_buf;
  11. }
复制代码


看了下你的读取代码,有问题,怎么能每次都打开关闭文件呢,这个函数调用的频率很多且很快的;模拟器就直接读取到内存。



回复

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
46#
发表于 2021-10-28 17:59:07 | 只看该作者
请阿里兄,抽空把界面优化一下。转换结果我基本不看,希望“输入请包含”文本框尽量大,这个很实用,最好跟“转换结果”一样大,并增加自定义结束行。谢谢!
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
47#
 楼主| 发表于 2021-10-28 18:03:58 | 只看该作者
ghong3298226 发表于 2021-10-28 17:59
请阿里兄,抽空把界面优化一下。转换结果我基本不看,希望“输入请包含”文本框尽量大,这个很实用,最好跟 ...

这个可以,不过近段暂时没有时间,太忙。
回复

使用道具 举报

1

主题

6

帖子

19

积分

新手上路

Rank: 1

积分
19
48#
发表于 2021-10-30 17:13:37 | 只看该作者
阿里兄 发表于 2021-10-25 10:00
使用你上传上来的字库,实际测试没有问题。

  感谢,这个问题后来是因为我没有将文件以二进制方式打开而造成的,已经解决了。
  在模拟器中内存足够是可以将字库一次性读出,但在实际使用情况下,硬件没有那么大内存,无法一次性全部读到内存,还是说只需要避免频繁打开关闭文件就行?比如在初始化时打开字符文件后不再关闭,每次调用user_font_getdata时只调用lseek函数就行?
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
49#
 楼主| 发表于 2021-10-30 17:17:14 | 只看该作者
MsTS 发表于 2021-10-30 17:13
感谢,这个问题后来是因为我没有将文件以二进制方式打开而造成的,已经解决了。
  在模拟器中内存足够 ...

可以的,打开一次,不关闭文件。不过建议用spi flash,不使用文件系统。
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
50#
发表于 2021-11-3 10:51:23 | 只看该作者
本帖最后由 jialong 于 2021-11-3 10:54 编辑

请教阿里兄。
我用 0.4 版本转换 win7 自带的 楷体,48 像素,添加了所有汉字和awesome图标,生成内部字体 c 文件,设置直接存文件,但每次转换到90%左右,都报错,没有成功过,出错提示如下:



请帮看看大概是什么原因。
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
51#
 楼主| 发表于 2021-11-3 10:58:22 | 只看该作者
jialong 发表于 2021-11-3 10:51
请教阿里兄。
我用 0.4 版本转换 win7 自带的 楷体,48 像素,添加了所有汉字和awesome图标,生成内部字体  ...

这个应该是生成的内容太多了,你试试内部XBF字体,实在不行就外部XBF,使用XBF生成的BIN直接转成C数组,读取函数直接返回  &  (C数组名)[offset]。
回复

使用道具 举报

0

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
52#
发表于 2021-12-11 19:28:25 | 只看该作者
阿里兄 发表于 2021-8-24 23:54
外部XBF字体可以直接支持,内部字体要修改一点点。



请问这样修改有没有问题?
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
53#
 楼主| 发表于 2021-12-11 19:53:48 | 只看该作者
fsyzty 发表于 2021-12-11 19:28
请问这样修改有没有问题?

请看本贴22楼的回复。
回复

使用道具 举报

0

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
54#
发表于 2021-12-12 22:29:01 | 只看该作者


esp32 编译出错. 注释那几句后不报错,但是我没法确认上面的修改有没有问题.......
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
55#
 楼主| 发表于 2021-12-12 22:34:21 | 只看该作者
fsyzty 发表于 2021-12-12 22:29
esp32 编译出错. 注释那几句后不报错,但是我没法确认上面的修改有没有问题.......
...

LV8这个其实就是字体结构体成员变了下,你跳转看看它的结构体就懂了。
回复

使用道具 举报

0

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
56#
发表于 2021-12-12 23:38:44 | 只看该作者
编程小白,只会跟着人家的教程做.
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
57#
发表于 2021-12-17 00:21:08 | 只看该作者
大佬们,有没有方便加日文韩文的方法?
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
58#
 楼主| 发表于 2021-12-17 08:34:12 | 只看该作者
史莱姆 发表于 2021-12-17 00:21
大佬们,有没有方便加日文韩文的方法?

这个百度一下日韩所以字符看看了。
回复

使用道具 举报

1

主题

9

帖子

41

积分

新手上路

Rank: 1

积分
41
59#
发表于 2021-12-23 10:04:47 | 只看该作者
大家好,LvglFontTool_V0.4.rar 这个文件下载非常慢,几个小时下载不了,能发一下给我吗?e-mail:916359820@qq.com
回复

使用道具 举报

1

主题

9

帖子

41

积分

新手上路

Rank: 1

积分
41
60#
发表于 2021-12-23 10:11:36 | 只看该作者
已经可以了,原来是UC浏览器的问题,换了浏览器就行了。谢谢。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.3

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

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