一、前言
这段时间的工作需要研究stb_truetype库,因此本篇文章记录一下该库的基本用法。stb_truetype是一个常见字体加载库, 只有一个头文件, 功能虽没有freetype库强大,但代码量小很多,在Flash非常小的开发板上也可以用,觉得freetype库太大的,建议使用stb_truetype库。
stb库的GitHub仓库:https://github.com/nothings/stb。
二、stb_truetype解析ttf字体
使用stb_truetype库解析ttf字体的步骤通常如下:
1、加载并初始化ttf字体文件;
2、设置字体大小(字号)并计算缩放比例;
3、获取垂直方向上的度量并根据缩放比例调整,比如字高、行间距等;
4、获取水平方向上的度量,比如字宽、字间距等;
5、获取字符图片的边框(每个字符转化为图像的边界);
6、调整每个字体图像的宽高(代码中的x、y),并渲染字体;
至此,解析ttf字体已完成,附加步骤为使用stb_image_write库将渲染出来的图像保存为本地图片,下面直接上代码:
注意:在包含stb_truetype.h头文件的时候需要定义STB_TRUETYPE_IMPLEMENTATION,否则将会无法使用。
#include
#include
#define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stb_image_write.h" /* http://nothings.org/stb/stb