`
wuhua
  • 浏览: 2111905 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

汉字点阵字库原理

    博客分类:
  • J2ME
 
阅读更多

在国标GD2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。区位码的前两位是它的区号,后两位是它的位号用区位码就可以唯一地确定一个汉字或符号,反过来说,任何一个汉字或符号也都对应着一个唯一的区位码。汉字“母”字的区位码是3624,表明它在方阵的36区24位,问号“?”的区位码为0331,则它在03区3l位。
 
汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。如上所述,汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。经过这些处理,用机内码表示一个汉字需要占两个字节,分别 称为高位字节和低位字节,这两位字节的机内码按如下规则表示:
高位字节 = 区码 + 20H + 80H(或区码 + A0H)
低位字节 = 位码 + 20H + 80H(或位码 + AOH)
由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。
例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。
 
在汉字的点阵字库中,每个字节的每个位都代表一个汉字的一个点,每个汉字都是由一个矩形的点阵组成,0代表没有,1代表有点,将01分别用不同颜色画出,就形成了一个汉字,常用的点阵矩阵有12*12, 14*14, 16*16三种字库。
字库根据字节所表示点的不同有分为横向矩阵纵向矩阵,目前多数的字库都是横向矩阵的存储方式(用得最多的应该是早期UCDOS字库)纵向矩阵一般是因为有某些液晶是采用纵向扫描显示法,为了提高显示速度,于是便把字库矩阵做成纵向,省得在显示时还要做矩阵转换。我们接下去所描述的都是指横向矩阵字库。
 
对于16*16的矩阵来说,它所需要的位数共是16*16256个位,每个字节为8位,因此,每个汉字都需要用256/8=32个字节来表示。
即每两个字节代表一行的16个点,共需要16行,显示汉字时,只需一次性读取32个字节,并将每两个字节为一行打印出来,即可形成一个汉字。
点阵结构如下图所示:

 
第一字节
第二字节
 
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



分享到:
评论

相关推荐

    汉字点阵字库原理(带例子)

    汉字点阵字库原理,介绍区域码、机内码、汉子显示原理等等,百度文库上也有,不过这里面多个例子。

    16X16汉字点阵字库

    1. **汉字点阵字库原理**: 汉字点阵字库是一种将汉字图形化的方法,通过二维矩阵的形式表示每个汉字。在这个例子中,每个汉字由16行16列的点组成,每个点可以表示“开”(黑色)或“关”(空白),对应液晶屏上的...

    汉字点阵字库原理及应用

    最后提到的参考程序可以读取和显示汉字点阵字库,这在开发电子书、文字处理软件等涉及汉字显示的应用时具有一定的参考价值。尽管程序是用TC20编写的,但其核心算法和实现原理与DOS时代的C语言和单片机编程相似,理解...

    HZK12-48UCDOS的点阵字库

    HZK12-48UCDOS的点阵字库是一个专为UCDOS操作系统设计的字符集资源,主要用于在DOS环境下显示汉字...尽管现在DOS已经不再是主流的操作环境,但这些点阵字库及其背后的原理和技术对理解早期中文计算有着深远的历史价值。

    HZK中文点阵字库

    在HZK中文点阵字库中,"HZK"是字库的标识,代表这是针对汉字的字库。"ASC"则表示英文字符(ASCII字符集),通常包括标准的128个ASCII码字符。这些子文件如ASC12、ASC16和ASC48分别代表12像素高、16像素高和48像素高...

    汉字点阵字库及读取程序

    通过这个项目,开发者可以学习到汉字点阵字库的原理,了解如何用C语言实现数据的读取和处理,以及如何在单片机环境下进行图形显示。这不仅是提升编程技能的好机会,也是深入理解嵌入式系统硬件与软件交互的关键实践...

    易语言点阵字库原理演示源码

    点阵字库原理: 点阵字库是一种将字符表示为二维像素阵列的字体格式。每个字符由一系列的点组成,这些点可以是黑色或白色,对应于屏幕上的像素。例如,一个8x8的点阵字库,每个字符占用8行8列的像素点,通过黑、白...

    点阵字库生成器 V3.8.rar

    点阵字库生成器 V3.8 是一款专门用于创建点阵字体的工具,它能够支持多种语言编码,包括简体中文、繁体中文以及韩文。在IT领域,点阵字库是一种特殊类型的字体设计,它由一系列的点组成,每个点代表字体中的一个像素...

    点阵字库(字模)生成器 V4.0

    点阵字库生成器的工作原理是将汉字编码与对应的点阵图形关联起来。用户通过该软件可以自定义点阵字库的大小(例如16x16或24x24像素),选择需要生成的字符集,如GB2312中的所有字符,然后软件会根据选定的参数生成...

    点阵字库结构以及点阵字显示的实现原理

    点阵字库结构及其显示原理是计算机图形学和嵌入式系统中常用的技术之一,尤其在早期的DOS游戏开发中扮演着重要角色。本文旨在深入解析点阵字库的结构与点阵字显示的实现原理,帮助读者理解这一基础但关键的概念。 #...

    14 X 14中文点阵字库

    这个"14 X 14中文点阵字库"是专门为显示中文字符设计的一种数据资源,它包含了14像素宽乘以14像素高的每个汉字的图形信息。这种字库通常用于低分辨率的显示系统,比如老式计算机、电子手表或者某些嵌入式设备的显示...

    易语言读汉字点阵字库

    通过“读汉字点阵字库”这个项目,你可以深入学习易语言的文件操作、数据解析、数据类型转换以及图形绘制等功能,同时也能掌握汉字点阵字库的工作原理。这个过程对于理解计算机图形学、编码理论以及数据结构都有一定...

    java中使用点阵字库demo源代码

    在特定的应用场景中,例如电子显示屏、嵌入式系统或游戏开发,我们可能需要自定义特殊的字体效果,这时候点阵字库就显得尤为重要。点阵字库是一种将字符用像素点阵表示的字体格式,每个字符由一定数量的像素点组成,...

    液晶LCD点阵字库生成器

    点阵字库生成器的工作原理如下: 1. 输入字符:用户在软件中输入想要显示的字符,这可以是汉字、英文、数字或其他特殊符号。 2. 选择点阵规格:不同的LCD或点阵屏可能有不同的分辨率,用户需要选择适合目标设备的...

    TS4点阵字库制作工具.rar

    3. **教育和艺术创作**:在教育领域,点阵字库可以用于编程教学,让学生了解字符显示原理;在艺术创作中,独特的点阵字体也常被用于设计元素。 在使用"TS4Registered.exe"这个程序之前,确保你的计算机系统满足运行...

    读汉字点阵字库.zip易语言项目例子源码下载

    汉字点阵字库的基本原理是将每个汉字用一系列像素点表示,形成点阵图形,通常以二维数组的形式存储。这种字库中的每个汉字由一定数量的点(通常是16x16或24x24)组成,每个点代表一个像素,通过点的亮暗状态(通常用...

    HZK12-48UCDOS提取出来的点阵字库

    点阵字库的工作原理是将每一个字符(包括汉字)编码为一个二维的像素阵列。在HZK12-48字库中,每个汉字由12*48个二进制位组成,0表示黑色(不发光的像素),1表示白色(发光的像素)。通过这些位的组合,形成了不同...

Global site tag (gtag.js) - Google Analytics