单片机/MCUwilliam hill官网
直播中

lee_st

12年用户 45163经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP RF/无线
私信 关注
[文章]

【emWin实战教程V2.0】第21章 STemWin支持的字体简介

转最新版本教程
本章节为大家讲解STemWin的另一个重要功能,即STemWin所支持的字体。本章节只是一个简介,后面会有几个章节为大家全面讲解STemWin的字体显示方案,特别是汉字显示。

    本章节的知识点整理自STemWin官方手册。
    21.1 初学者重要提示
    21.2 字体简介
    21.3 STemWin支持的字体类型
    21.4 字符集
    21.5 标志字体
    21.6 总结

回帖(42)

lee_st

2017-1-19 11:52:27
21.1  初学者重要提示

1、emWin官方***FontCvt不支持GB编码,所以只能使用FontCvt支持的Unicode编码。

2、本章节说的位图字体就是我们通常所说的点阵字体。

3、字体显示的所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数的位置


举报

lee_st

2017-1-19 11:52:48
下图是英文版手册里面API函数的位置:

举报

lee_st

2017-1-19 11:53:09
21.2 字体简介


    STemWin库默认支持的字体全部是以C文件形式存在的,所有文件均包含有ASCII字符集,大部分还包含ISO 8859-1字符集。对于这两种字符集来说,使用8bit就可以表示,即256种字符,其中前32种字符是控制字符。下面是低版本的uCGUI3.98源码中带的字体文件部分截图:



由于仅仅是ASCII和ISO 8859-1字符集,并不怎么占空间,以C文件形式存在是比较合理的。此时就有一个问题摆在初学者面前,只有ASCII和ISO 8859-1字符集,那么显示汉字怎么办?这个问题就是后续章节要给大家讲解的。
举报

lee_st

2017-1-19 11:53:34
21.2 字体简介


    STemWin库默认支持的字体全部是以C文件形式存在的,所有文件均包含有ASCII字符集,大部分还包含ISO 8859-1字符集。对于这两种字符集来说,使用8bit就可以表示,即256种字符,其中前32种字符是控制字符。下面是低版本的uCGUI3.98源码中带的字体文件部分截图:



由于仅仅是ASCII和ISO 8859-1字符集,并不怎么占空间,以C文件形式存在是比较合理的。此时就有一个问题摆在初学者面前,只有ASCII和ISO 8859-1字符集,那么显示汉字怎么办?这个问题就是后续章节要给大家讲解的。
    同时,STemWin字体包含抗锯齿、复合字符的图样 (比如泰语中的要求)、位于外部存储器字体(主要是指XBF字体和SIF字体,)以及TrueType 矢量字体支持。除 TrueType矢量字体格式外,所有其他字体均为位图字体,或者说点阵字体。
举报

lee_st

2017-1-19 11:53:54
21.3 STemWin支持的字体类型

    这里我们通过官方的字体转换器来了解一下emWin支持的字体类型,首先需要大家按照第2章2.3.4小节的说明下载STemWin的软件包,其中FontCvt位于路径:STM32Cube_FW_F4_V1.13.0MiddlewaresSTSTemWinSoftware里面,打开后的界面效果如下:

举报

lee_st

2017-1-19 11:54:27
从上面截图可以看出该软件主要支持7种字体类型,下面说一下这7种都代表什么意思。解释时都以微软雅黑字体中的“啊”字来说明,字体大小选择18。

举报

真相只有我知道

2017-1-19 12:20:27
你为什么发目录给我们看,内容呢?
举报

lee_st

2017-1-19 14:02:13
21.1  初学者重要提示

1、emWin官方***FontCvt不支持GB编码,所以只能使用FontCvt支持的Unicode编码。

2、本章节说的位图字体就是我们通常所说的点阵字体。

3、字体显示的所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数的位置


举报

lee_st

2017-1-19 14:02:38
下图是英文版手册里面API函数的位置:

举报

lee_st

2017-1-19 14:03:04
21.2 字体简介


    STemWin库默认支持的字体全部是以C文件形式存在的,所有文件均包含有ASCII字符集,大部分还包含ISO 8859-1字符集。对于这两种字符集来说,使用8bit就可以表示,即256种字符,其中前32种字符是控制字符。下面是低版本的uCGUI3.98源码中带的字体文件部分截图:



由于仅仅是ASCII和ISO 8859-1字符集,并不怎么占空间,以C文件形式存在是比较合理的。此时就有一个问题摆在初学者面前,只有ASCII和ISO 8859-1字符集,那么显示汉字怎么办?这个问题就是后续章节要给大家讲解的。
    同时,STemWin字体包含抗锯齿、复合字符的图样 (比如泰语中的要求)、位于外部存储器字体(主要是指XBF字体和SIF字体,)以及TrueType 矢量字体支持。除 TrueType矢量字体格式外,所有其他字体均为位图字体,或者说点阵字体。
举报

lee_st

2017-1-19 14:03:23
21.3 STemWin支持的字体类型

    这里我们通过官方的字体转换器来了解一下emWin支持的字体类型,首先需要大家按照第2章2.3.4小节的说明下载STemWin的软件包,其中FontCvt位于路径:STM32Cube_FW_F4_V1.13.0MiddlewaresSTSTemWinSoftware里面,打开后的界面效果如下:

举报

lee_st

2017-1-19 14:03:38
从上面截图可以看出该软件主要支持7种字体类型,下面说一下这7种都代表什么意思。解释时都以微软雅黑字体中的“啊”字来说明,字体大小选择18。

举报

lee_st

2017-1-19 14:03:53
21.3.1  Standard 比例位图字体


    比例位图字体的每个字符高度相同、宽度可能不同。像素信息保存为1 bpp(bit per pixel,涵盖整个字符区域。“啊”字显示效果如下:

举报

lee_st

2017-1-19 14:04:11
21.3.2  Antialiased 2bpp 抗锯齿字体


    每个字符高度相同、宽度可能不同。像素信息保存为2bpp抗锯齿信息,涵盖整个字符区域。“啊”字显示效果如下:

举报

lee_st

2017-1-19 14:04:45
21.3.3  Antialiased 4bpp 抗锯齿字体


    每个字符高度相同、宽度可能不同。像素信息保存为4 bpp抗锯齿信息,涵盖整个字符区域。“啊”字显示效果如下:

举报

lee_st

2017-1-19 14:04:46
21.3.3  Antialiased 4bpp 抗锯齿字体


    每个字符高度相同、宽度可能不同。像素信息保存为4 bpp抗锯齿信息,涵盖整个字符区域。“啊”字显示效果如下:

举报

lee_st

2017-1-19 14:05:04
21.3.4  Extended 扩展比例位图字体


    扩展比例位图字体的每个字符拥有自己的高度和宽度。像素信息保存为1 bpp,仅涵盖字形位图区域。注意和前面的Standard字体的区别。

举报

lee_st

2017-1-19 14:05:36
21.3.6  Extended 4bpp扩展比例位图字体


    每个字符高度相同、宽度可能不同。像素信息保存为4bpp抗锯齿信息,仅涵盖字形位图区域。注意和前面的Antialiased 4bpp字体的区别。

举报

lee_st

2017-1-19 14:06:02
21.3.7  Extended framed带边框的扩展比例位图字体


    在某些情况下 (例如编译时背景颜色未知),可以使用带边框的字体。带边框的字体始终在透明模式下绘制,与当前设置无关。字符像素按当前所选的前景颜色绘制,边框按背景颜色绘制。前景颜色和背景颜色之间明显的对比可以确保能够阅读文本,而与背景无关。请注意,这种类型的字体不适用于复合字符,例如泰语。另外,也不适用于Arabic字体。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分