MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入

Mini Panel真正开启中文汉字支持u8glib Marlin

3D打印机上用的LCD控制器都是英文的菜单,给新手带来了障碍,MakerLab现已开发支持中文的Marlin版本
Mini Panel简介48 U8glib如何显示中文74 U8glib如何定制字体8 Marlin中文版LCD界面25 如何使用Marlin中文版19 Marlin LCD菜单的功能11 bdf字体文档下载1
Andy large avatar
MakerLab创客实验室  ›  学习系统  ›  3d 打印  ›  Mini Panel真正开启中文汉字支持u8glib Marlin

U8glib如何定制字体

By Andy at 2 年前 , 7697 次浏览

通过上一部分的说明,你已经知道了如何显示unifont.bdf中任意字符了。但是你会发现unifont中的汉字是默认的16X16像素的字体(好像是宋体),这种字体看起来很笨拙,占用空间很大,视觉效果并不好。那么如何定制你自己的字体,来完成更加个性化或更漂亮的字体显示呢?

其实跟前面介绍的方法是一样的,不同之处在于你需要去找到或自己设计一个自己喜欢的字体,需要的字体格式是bdf格式,然后使用bdf2u8g这个工具转换为u8glib所需要的字体数据,就可以显示了。为了能够在Mini Panle LCD控制板上显示中文的Marlin操作界面,我尝试了自己画中文,来实现个性化的字体显示,虽然画的不漂亮,但是你可以发现,字体的大小都得到了控制,12X12像素,节省了很多宝贵空间。如下图:

自己画字体应该有很多软件可以用,我不是专业是字体设计师,随便找了一个我感觉简单好用的Fony。可以导出为bdf格式,这个很重要,否则你还需要对格式转换。下载地址:Fony.zip

程序界面如下:

由于这个小工具比较简单,并且我也不是专业的设计师,我就不介绍这个软件的用法了,大家研究一下。Fony可以创建0~255编码的字体,其中32~126是ASCII中可见的部分,所以应当都显示为标准的字符,其它部分我们可以用来定制自己的字符,比如特殊符号及汉字等。

字体设计完成后,就可以导出为bdf格式了,然后使用bdf2u8g工具生成u8glib可以使用的数据文件,请参考上面的命令,由于自己画的字体编号是0~255,没有更多的编码,所以-l及-u参数并没有使用。

下面就是我自己画的字体,见笑了。

本文最后更新于:5 个月前
8 回复
旺我 medium avatar
#1 - 2 年前
旺我

太好了!!LCD看了几天,正烦E文呢!!还有开屏的二个画面哪个FR什么100%现在也不知道什么意思....

alidetuou medium avatar
#2 - 2 年前
alidetuou

这个怎么算那个命令中的数值呢

Andy medium avatar
#3 - 2 年前
Andy

@alidetuou 如果自己定制字体,就相对简单,因为都是在0~255之间。没有涉及-l,-u参数

alidetuou medium avatar
#4 - 2 年前
alidetuou

具体怎么操作呢?

Andy medium avatar
#5 - 2 年前
Andy

@alidetuou
1、为特定汉字确定ASCII码,因为1~127是可视的常用字符,所以安排汉字一般在128~255之间;
2、绘制汉字为bdf格式;
3、用bdf2u8g工具转换为字体数据;
4、完整显示

alidetuou medium avatar
#6 - 2 年前
alidetuou

你说我可不可以用一个什么软件将windows下的字体库转成bdf,然后显示那里边的字呢