LiteOS组件尝鲜-玩转FreeType
基本介绍
FreeType库是一个开源免费的高质量字体引擎,提供了统一的接口用于访问多种字体格式文件。FreeType库使用ANSI C开发,但是采用了面向对象的思想。此外,FreeType库是一个高度模块化的程序库,用户可以灵活地根据需要进行裁剪。
流程介绍
FreeType的典型使用流程如下图所示:
图1 流程框图
LiteOS下使用FreeType
主要接口描述
接口名称 |
接口描述 |
FT_New_Face |
创建一个face对象 |
FT_Get_Char_Index |
查找字形索引 |
FT_Load_Glyph |
装载字形图像到字形槽中 |
FT_Get_Glyph |
存储字符的字形图像 |
获取LiteOS源码
这里我们使用Linux作为LiteOS编译环境,可以通过以下方式下载工程代码:
git clone https://gitee.com/LiteOS/LiteOS.git
FreeType组件的示例Demo源码路径为:
https://gitee.com/LiteOS/LiteOS/tree/master/demos/utility/freetype
下面介绍该组件及示例Demo的使能过程。
使能 FreeType Demo
该Demo示例通过加载预置字体库,生成英文字符对应字形点阵数据,通过使用野火开发板Cloud_STM32F429IGTx_FIRE运行Demo程序并展示其结果。下面介绍该Demo的使能流程。
在LiteOS源码根目录下,拷贝开发板的默认配置文件,并重命名为.config。
cp tools/build/config/Cloud_STM32F429IGTx_FIRE.config .config
执行make menuconfig,按如下菜单路径使能各组件:
Components --->
FileSystem --->
-*- Enable FATFS (NEW)
Choose Peripheral Driver (SD Card)
Demos --->
Utility Demo --->
[*] Enable FreeType Demo (NEW)
注:使用FATFS文件系统挂载SD卡的方式,用于读取字库测试文件。
在LiteOS源码根目录下执行make clean ; make -j命令进行编译完成后,将在out/Cloud_STM32F429IGTx_FIRE/lib目录下生成组件库文件libfreetype.a和此Demo库文件libfreetype_demo.a,系统镜像文件为out/Cloud_STM32F429IGTx_FIRE/Huawei_LiteOS.bin。
运行FreeType Demo
提供的字库测试文件inkree.ttf位于LiteOS/demos/utility/freetype目录下。
操作步骤如下:
1. 将测试字体文件拷贝到SD卡的根目录中,然后安装到开发板的SD卡槽内。
2. 烧录Huawei_LiteOS.bin到开发板中。
3. 重启开发板,查看运行结果。
FreeType Demo程序运行时,通过调用FreeType库相关接口,加载预置字体库inkree.ttf,根据传入的测试字符参数“H”,生成该字符对应的字形点阵数据。
通过调试串口输出字符“H” 对应测试字库的点阵数据。
1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1
1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0
1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0
1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0
1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0
1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0
1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0
1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1
1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1
1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1
1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1
1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1
1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1
1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1
1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1
1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1
1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1
1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1
0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1
1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1
至此,我们介绍了FreeType组件使能及示例Demo运行的整个过程。如果在使用LiteOS构建应用的过程中遇到问题,可以及时在https://gitee.com/LiteOS/LiteOS/issues页面上提交相关issue,LiteOS的工程师们会为您及时答疑解惑。
参考资料
[1] https://github.com/freetype/freetype
结语
未来我们还会持续新增更多组件、开发板、架构、特性等。
感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:
https://gitee.com/LiteOS/LiteOS/issues
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如下图。
-end-
- 点赞
- 收藏
- 关注作者
评论(0)