嵌入式的汉字原来是这样显示的?

💡 原文中文,约4700字,阅读约需11分钟。
📝

内容提要

本文讨论了在嵌入式系统中显示汉字和英文字符的方法,包括矢量字体和点阵字体的区别,字符编码和汉字编码的相关知识。同时提供了获取字库的方式和注意事项。

🔎

延伸解读

点阵与矢量:嵌入式显示的取舍

文章指出,点阵字体以数组形式保存字符描绘信息,适合显示内容较少的场景;矢量字体通过数学曲线描述字形,可任意缩放,但渲染后仍是点阵。在嵌入式LCD上,点阵字体直接还原数组即可显示,而矢量字体需借助FreeType等引擎渲染。选择时需权衡存储空间、显示效果和处理器性能,小字号下矢量字体可能失真。

汉字编码的兼容与扩展

GB2312、GBK和GB18030是逐步扩展的汉字编码标准。GB2312收录6763个汉字,GBK扩充至21003个,GB18030覆盖27484个汉字并兼容前两者。嵌入式设备支持多国语言时,需注意编码兼容性:GB18030采用单字节、双字节和四字节混合编码,处理时需按规则解析,避免乱码。

字库获取的版权风险

文章强调,字体版权属于字形描绘效果,将矢量字库转换为点阵字库并不改变版权归属。商用嵌入式设备使用非开源字体(如Windows自带字体)可能侵权。开源字体如思源字体可免费商用。从DOS系统或汉卡获取的点阵字库版权不明,需谨慎使用。建议优先选择明确授权或开源的字库。

❓

Q&A

在LCD上显示汉字的基本原理是什么?

LCD由许多点组成,类似于LED点阵。显示字符时,需要将字符对应的LED点点亮,字符信息通常保存为数组,通过取模方式还原到LCD上。

点阵字库有哪些常见的存储形式?

点阵字库常见形式包括:直接数组保存到代码中、bmp图片贴图字体、打包为bin文件、按照电脑字体规范整合的字体(如ttf、bdf)。

矢量字体和点阵字体有什么区别?

矢量字体通过数学曲线描述字形,可任意缩放而不变形;点阵字体由像素点阵组成,放大可能失真。矢量字体渲染后最终也转为bitmap显示。

GB2312、GBK和GB18030编码有什么区别?

GB2312收录6763个汉字,双字节;GBK扩充至21003个汉字,双字节;GB18030收录27484个汉字,采用单字节、双字节和四字节编码,兼容GBK和GB2312。

在嵌入式设备上使用字库需要注意版权问题吗?

需要注意。字体(包括矢量字体和点阵字库)通常有版权,商业使用需获得授权。开源字体如思源字体可以免费商用。

如何获取点阵字库?

获取方式包括:从汉卡、DOS系统获取;从电脑字体中提取;使用取模工具(如zimo3)生成;用点阵生成工具批量转换;从开源模块中找外文点阵;购买商业字库;或手动绘制。

🏷️

标签

➡️

继续阅读