Adafruit GFX字体制作
陈拓 2021/07/08-2021/07/08
1. 概述
在《Adafruit GFX Library字体规范》
https://zhuanlan.zhihu.com/p/385486474
https://blog.csdn.net/chentuo2000/article/details/118369058
一文中我们详细说明了Adafruit GFX字体的规范,本文介绍Adafruit GFX字体的制作,并用ESP8266 RTOS SDK演示。
Adafruit GFX字体的制作的方法是先获取想要字体的TTF文件,在用工具转换成Adafruit GFX格式。
Adafruit GFX字体可以是等宽字体(Monospaced Fonts)的,也可以是非等宽字体。
2. 字体获得
在《制作OLED文字》
https://zhuanlan.zhihu.com/p/384922288
https://blog.csdn.net/chentuo2000/article/details/118327300
一文中我们从免费资源库https://www.onlinewebfonts.com/
下载了7段数码管字体的TTF文件Digital-7 V4.ttf,并在PCtoLCD2002中取了C51格式的字模。
下面我们还用7段数码管字体的Digital-7 V4.ttf文件,将其转换成Adafruit GFX字体格式的字模。
3. 将TTF字体转换为Adafruit GFX字体
3.1 转换工具
我们通过下面的网页在线将TTF字体转换为Adafruit GFX字体。
https://rop.nl/truetype2gfx/
页面中提供了一些免费字体:其中Sans是无衬线字体,Serif是衬线字体,Mono是等宽字体。
我们还可以上传(Upload)TTF字体文件。
3.2 生成Adafruit GFX字体文件
- 上传Digital-7 V4.ttf
字体大小Font Size是20点。
- 生成Adafruit GFX字体文件
点击Get GFX font file,生成Adafruit GFX字体文件:Digital_7_V420pt7b.h
3.3 Adafruit GFX字体文件构成
Adafruit GFX字体文件Digital_7_V420pt7b.h由3部分构成。
- 位图数据Bitmaps数组
- 字形Glyphs数组
- GFXfont
3.4 PROGMEM关键字
PROGMEM关键字被Arduino和AVR编程使用,在ESP8266和ESP32的官方开发环境RTOS SDK和ESP-IDF中要删除。
有关Adafruit GFX字体的详细说明见概述中提到的《Adafruit GFX Library字体规范》。
4. 显示效果
下图是ESP8266驱动0.96寸OLED显示屏的效果: