在UCGUI中增加汉字显示的说明.
UCGUI中本身只支持E,没有提供中文的字库的.C源码文件, 但是我们可以通过下面的方式来实现汉字的显示...
我们知道, 在DOS下经常利用点阵来显示汉字. 带汉字显示的程序,很多都会自己带上汉字库, 这个字库里放的就是每个汉字的
点阵.
一. 汉字的显示原理之一 -----------------点阵汉字.
简单的理解, 所谓一个字的点阵. 其实就是指这个汉字用多少个象素点来描述. 每个象素点显示为什么颜色, 通常情况下,
HZK16采用的是16*16点阵, 即256个象素点描述一个汉字.
这些点的颜色分为两种, 一种是前景色, 一种是显示为背景色.
那么,关于那些点显示为前景色, 那些点显示为背景色, 是如何得知的呢??
可以这样来考虑, 你在纸上比较正正方方的写一个规则的楷字, 然后在这个字的从上到下,左到右, 分别画十七条直线, 那么这
个字就被放置于一个16*16的方格之内, 这样我们就可以很明显的看出, 16*16的方格内的具体哪些点有笔划经过, 有笔划经过
与没笔化经过的即就是应该被分别填充上前景色与背景色的点.
现在,找到了一个汉字的点阵, 那么还须要用数据来记录点阵的信息, 通常情况下, 我们会用32个字节来表示16*16点阵的汉字,
即每一行用二个字节来记录十六个象素点的色色彩情况, 0表示背景色, 1表示前景色. 16行其须要32个字节.
点阵汉字的原理同时也决定了它的缺点, 他不具务放大特性, 因为它的显示是基于被定死的点阵, 放大后, 会产生明显的锯齿,
非常的难看, 当然, 可以进行一些光滑处理, 但基本上没有多在的改观.
但点阵汉字简易, 对于复杂汉字, 它比矢量显示汉字法更快带.矢量显示是基于记录汉字的笔化的. 对于简单的汉字它比较占优
势, 容易放大处理. 但对于复杂的汉字, 表示起来, 则笔化太多..复杂.
二. 关于字库的建立及其原理.
现在讲完了汉字点阵. 也说了一个汉