硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4205|回复: 10
收起左侧

[emWin] 有没有人需要ttf字体精简教程的?

[复制链接]

25

主题

287

回帖

367

积分

高级会员

积分
367
发表于 2020-3-6 16:22:19 | 显示全部楼层 |阅读模式
本帖最后由 爱恋之燕 于 2020-3-6 17:56 编辑

有没有人需要ttf字体精简教程的?最近在做人机界面,发现emwin直接使用ttf字体要比xbf和sif字体响应快多了,尤其是切换窗口和listview小工具,点下就切换界面,没有延迟,而使用xbf和sif字体点了要缓一下才反应过来,个人认为直接使用ttf字体更有实际意义,但是ttf字体动辄10MB以上,太占内存了,于是在网上搜索了FontPruner这个工具可以精简字体,保留数字、字母、常用符号、常用的3500个简体字,最终ttf字体只有1.5MB,很适合嵌入式设备使用,并且使用这个字体没有问题,如果有人需要的话我就写个教程分享给大家,大神请路过

建议在Linux下操作,所以本教程在Ubuntu环境下测试的
需要python和java环境 ,附件最后上传
1 安装JDK
1.1下载JDK安装包
链接:https://www.oracle.com/java/technologies/javase-downloads.html
下载完成后,将安装包复制到“/usr/java”目录下,如没有则手动新建,其他目录也可以

  1. sudo cp jdk-13.0.2_linux-x64_bin.tar.gz /usr/java
复制代码
1.2解压
进入“/usr/java”目录,解压安装包

  1. sudo tar -zvxf jdk-13.0.2_linux-x64_bin.tar.gz
复制代码
1.3配置环境变量
使用vim编辑器打开“/etc/profile”

  1. sudo vim /etc/profile
复制代码

然后在末尾添加下面这些代码
  1. export JAVA_HOME=/usr/java/jdk-13.0.2
  2. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
  3. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  4. export JRE_HOME=$JAVA_HOME/jre
复制代码
图片1.png
保存退出

1.4配置生效

  1. source /etc/profile
复制代码
1.5重启计算机
  1. sudo reboot
复制代码
检查是否安装成功
  1. java -version
复制代码
图片2.png


评分

参与人数 1金币 +10 收起 理由
cz123123 + 10 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107156
QQ
发表于 2020-3-6 16:26:04 | 显示全部楼层
同意分享
回复

使用道具 举报

3

主题

34

回帖

43

积分

新手上路

积分
43
发表于 2020-3-6 16:33:53 | 显示全部楼层
同求,现在根据界面改字库实在太麻烦了
回复

使用道具 举报

7

主题

31

回帖

52

积分

初级会员

积分
52
QQ
发表于 2020-3-6 16:35:05 | 显示全部楼层
需要分享
回复

使用道具 举报

25

主题

287

回帖

367

积分

高级会员

积分
367
 楼主| 发表于 2020-3-6 17:38:32 | 显示全部楼层
2 安装python
在终端输入命令
  1. sudo apt-get install python
复制代码
输入python检查是否安装成功
图片4.png

3 FontPruner的使用
将需要精简的字体库放在fontpruner根目录下,这里以SIMHEI.TTF(黑体)为例说明
图片5.png
将需要保留的汉字放在src/FontExtract/ChineseOutPut.txt中;
将需要保留的字母、数字、符号(非汉字)放在src/FontExtract/unChineseOutPut.txt中;

执行命令
在fontpruner根目录执行

  1. python FontPruner.py --inputPath=./ --inputFont=SIMHEI.TTF --tempPath=./
复制代码
图片6.png
如图所示的,就输出了SIMHEI.TTF
输出的文件在:根目录/output/ 目录下
最终生成的TTF字体文件包含3623个字符,大小不到1MB,也可以用fontcreator这个软件查看具体包含的字符

图片8.png
图片7.png
关于ttf字体的使用就参考《安富莱STM32-V6开发板STemWin教程》第28章

回复

使用道具 举报

25

主题

287

回帖

367

积分

高级会员

积分
367
 楼主| 发表于 2020-3-6 17:52:41 | 显示全部楼层
附件的链接
链接:https://pan.baidu.com/s/1QrKKX8mvK7cZUtvusV5s6Q
提取码:e4tc
微信截图_20200306174936.png
fontcreator.zip:字体编辑软件,可以不需要
FontPruner-master.rar:字体精简工具
jdk-13.0.2_linux-x64_bin.tar.gz:JDK的安装包


回复

使用道具 举报

3

主题

34

回帖

43

积分

新手上路

积分
43
发表于 2020-3-6 20:07:03 | 显示全部楼层
这个矢量字体库不知道能不能用GBK编码的,因为之前都是用这个编码改动挺大
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
发表于 2020-10-29 09:29:36 | 显示全部楼层
zouw96 发表于 2020-3-6 20:07
这个矢量字体库不知道能不能用GBK编码的,因为之前都是用这个编码改动挺大

写一个 转码程序就可以了
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

积分
39
QQ
发表于 2021-3-1 23:32:29 | 显示全部楼层
这套操作能使用在stm32的平台吗?
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 17:23 , Processed in 0.251214 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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