FontCvt.exe 使用指南:生成嵌入式字库
FontCvt.exe 是一款非常实用的字体转换工具,主要用于嵌入式GUI开发(如emWin、ucGUI)中,将电脑上安装的TrueType等字体转换为可在嵌入式设备上使用的像素字体文件(通常是C语言源文件格式)。下面我为你整理了它的主要功能和使用方法。
·
FontCvt.exe 使用指南:生成嵌入式字库
1. 工具简介与获取
FontCvt.exe 是一款非常实用的字体转换工具,主要用于嵌入式GUI开发(如emWin、ucGUI)中,将电脑上安装的TrueType等字体转换为可在嵌入式设备上使用的像素字体文件(通常是C语言源文件格式)。下面我为你整理了它的主要功能和使用方法。
-
获取途径:如果您使用 STM32 等 ST 产品,通常可以在 STemWin 软件包中找到 FontCvtST.exe(路径例如:STemWin_Library_V1.2.0\Libraries\STemWinLibrary532\Software\FontCvtST.exe)
-
授权说明:未经授权的版本生成的字体可能在字符周围有黑色边框。建议通过官方渠道获取或使用已获授权的版本。
2. 核心功能特点
FontCvt 支持多种字体生成格式和编码,满足不同场景需求。
-
字体生成格式
选项 说明 Standard: 标准比例字体(如16x16),字符等高,宽度可能不同,像素信息为1bpp。 Antialiased,2bpp/4bpp: 2位或4位抗锯齿,使字符边缘更平滑。 Extended: 扩展字体,字符宽度和高度都可能不同,且不包含上下空行。 Extended,framed: 带边框的扩展字体,在透明背景下也能清晰显示。 -
编码格式
选项 说明 16 Bit UNICODE: (推荐) 支持中文等 Unicode 字符。 8 Bit ASCII + ISO 8859: 适用于西欧字符。 8/16 Bit SHIFT_JIS: 适用于日文字符。
3. 基本使用步骤(GUI界面)
以下是通过图形界面生成字库的典型步骤,以生成一个支持中文的16点阵宋体为例:
- 🛠️ 准备字体文件:确保系统已安装所需字体(如宋体)。可通过系统字体设置安装,或使用字体管理软件安装。
- 🚀 启动FontCvt:双击运行 FontCvt.exe 或 FontCvtST.exe。
- ⚙️ 设置字体类型与编码:
- 在弹出窗口中,选择生成的字体类型(如 “Standard”)。
- 编码务必选择 “16 Bit UNICODE” 以支持中文。
- 点击 OK。
- 🔡 选择具体字体:
- 在 “Font” 下拉框中选择目标字体(如 “宋体”)。
- 在 “Size” 中输入字体大小(如 “16”,表示16点阵)。
- 点击 确定。
- 🔤 选择所需字符(生成小字库关键):为了节省存储空间,可以只选择项目中需要用到的字符:
- 点击菜单 Edit -> Disable all characters 禁用所有字符。
- 有两种方式启用特定字符:
- 方式一(手动选择):在字符表中拖动鼠标选择需要的字符块,或点击 Edit -> Enable range of characters 并输入Unicode范围(如基本数字字母范围 0000-007F)。
- 方式二(推荐,通过文件导入):
- 创建一个文本文件(.txt),在里面输入您需要的所有字符(例如:“安富莱电子123”)。
- 将该文本文件另存为 “Unicode 编码”(或 UTF-16 LE 等)格式。
- 在 FontCvt 中点击 Edit -> Read pattern file,选择刚才保存的.txt文件。软件会自动启用文件中包含的字符。
- 💾 保存字库文件:
- 点击菜单 File -> Save As。
- 选择保存类型为 “C File (*.c)”。
- 文件名请使用英文命名(如 Song16.c),避免使用中文。
4. 在项目中使用生成的字库
- 添加文件:将生成的 .c 字体文件添加到您的嵌入式项目工程中。
- 声明字体:在需要使用的源文件中,使用 extern 声明字体变量(变量名通常在生成的.c文件头部可以找到):
extern GUI_CONST_STORAGE GUI_FONT GUI_FontSong16; /* 假设生成的字体变量名为GUI_FontSong16 */ - 设置编码:在应用程序初始化时,启用UTF-8编码(因为FontCvt生成的Unicode字体在emWin中通常以UTF-8格式使用):
GUI_UC_SetEncodeUTF8(); - 设置字体:在需要显示的地方设置该字体:
GUI_SetFont(&GUI_FontSong16); /* 注意:这里需要对字体变量取地址 */ GUI_DispString("安富莱电子"); /* 显示汉字 */
5. 注意事项与常见问题
- 💡 字体编码:生成中文字库时,务必选择 16 Bit UNICODE 编码。
- 💡 文本文件编码:通过 Read pattern file 功能读取的文本文件(.txt)必须是 Unicode 编码(如 UCS-2 Little Endian 或 UTF-16 LE),否则可能无法正确加载或报错。
- 💡 文件名:保存生成的C文件时,文件名不要使用中文,以免出现意想不到的问题。
- 💡 字符缺失:如果生成的字体在显示时某些字符显示为空白方块,检查该字符是否在生成字库时已被启用(即在字符选择范围内或模式文件中包含)。
- 💡 命令行字体找不到:使用命令行时,如果提示 “Font does not exist”,请确保字体名称拼写完整准确,且该字体已为所有用户安装。
6. 总结
FontCvt.exe 是嵌入式GUI开发中生成定制字库的得力工具,特别适合需要显示外文或特殊字符(尤其是中文)的场景。通过有选择地生成仅包含所需字符的小字库,可以有效优化嵌入式设备的存储空间使用。
希望这份指南能帮助您顺利使用 FontCvt.exe!
更多推荐



所有评论(0)