Download presentation
Presentation is loading. Please wait.
1
第七讲 汉字输出技术 苏州大学计算机科学与技术学院
2
内容 汉字的输出技术综述 汉字显示输出原理和基本结构 汉字显示技术实例 打印输出原理和基本结构 汉字输出应用
3
一、汉字的输出技术综述
4
内容 汉字输出技术概述 汉字输出技术的发展
5
汉字输出技术概述 汉字信息的输出也主要就是汉字在显示器上的显示以及在打印机上的打印。 汉字的输出技术还包括利用通信技术,汉字信息以交换码的形式在计算机与计算机或其它电子设备之间的传送。
6
汉字输出技术的发展 1968年首先在“717计算机”上研制出了能显示256个汉字的显示器 1983年开发了我国第一个汉字DOS操作系统——CC-DOS (软件方式) 1985年开发了我国的第一块汉卡 (硬件方式) 从九十年代开始,汉字输出又进入了一个以软件为主的阶段
7
二、汉字显示输出原理和基本结构
8
内容 显示设备 汉字显示的原理 内码缓冲区和字形缓冲区 汉字显示输出过程 汉字终端
9
1.阴极射线管显示器(CRT)
10
液晶显示器(LCD)
11
2.显示适配卡(Video adapter cards)
显示适配卡上面带着内存和专门的处理器。该处理器是被设计为专门处理需要显示图像的计算。这些图形处理器的芯片里面有特别的用于计算图象的命令集。它通过总线连接CPU与显示器,是CPU与显示器之间的接口设备,即视频控制电路。它可以将显示存储器送出的信息转换成视频控制信号,送显示器显示。 显卡一般由显示芯片、显示存储器(简称显存)、计算机接口和视频接口四个部分组成。
12
显示芯片 显示存储器 计算机接口 视频接口
13
3.分辨率、颜色数和显存 分辨率(Resolution)就是屏幕图像的精密度,是指显示器所能显示点数的多少。分辨率为1024×768的屏幕来说,即每一条水平线上包含有1024个像素点,共有768条线,即扫描列数为1024列,行数为768行。 决定分辨率的两个因素: 显示器 显存的大小和每个点的颜色数
14
640×480×单色分辨率,需要的显存为:(640×480)/8=38400个字节
1024×768×256色的分辨率,需要的显存为:1024×768=768K个字节 1280×1024×32位色的分辨率,需要的显存为:(1280×1024)×4=5M字节。
15
4.汉字和分辨率 汉字的点阵大小和屏幕的分辨率决定了在屏幕上可以显示多少行和多少列汉字 假设汉字的点阵大小为DX和DY,而屏幕的分辨率为SX和SY,另外,行与行之间要有行间距,假设为K个像素点,则每行可以显示[SX/DX]个汉字,每列可以显示[SY/(DY+K)]个汉字,总共可以显示[SX/DX]×[SY/(DY+K)]个汉字。
16
4.汉字和分辨率(续) 分辨率为640×480,假设汉字大小为16×16点阵,行间距为2,则
每行可以显示的汉字数为:[640/16]=40个汉字 可显示的列数为:[480/(16+2)]=26列 总共可以显示的汉字数为:26×40=1040个汉字 分辨率为1280×1024,汉字大小为24×24点阵,行间距为4,则 每行可以显示的汉字数为:[1280/24]=53个汉字 可显示的列数为:[1024/(24+4)]=36列 总共可以显示的汉字数为:53×36=1908个汉字
17
5.显示驱动程序 驱动程序就是用来向操作系统提供一个访问、使用硬件设备的接口,实现操作系统和系统中所有的硬件设备的之间的通信程序,它能告诉系统硬件设备所包含的功能,并且在软件系统要实现某个功能时,调动硬件并使硬件用最有效的方式来完成它。 汉字的显示本质就是把显示驱动程序汉化,使它支持汉字显示。
18
内容 显示设备 汉字显示的原理 内码缓冲区和字形缓冲区 汉字显示输出过程 汉字终端
19
字符模式显示原理 图形信息 ASCII ASCII 西文字符的ASCII码 ASCII 图形信息 硬件显卡和显示器工作 显卡的 字符映射器
屏幕 显示存储器 ASCII 图形信息 ASCII码的点阵字形库 硬件显卡和显示器工作
20
字符显示模式下西文字符的显示流程 用户需要显示某个字符,则把该字符的ASCII码通过系统调用,并根据用户提供的位置信息写到显存的相应位置; 显卡定时把显存中的信息刷新到屏幕,处理到这个字符时,从显存中获得ASCII码,然后通过字符映射器到显卡ROM中的ASCII码字形库中找到这个ASCII码的点阵信息; 显卡把这些点阵信息和当前字符的位置、颜色等属性转换为视频信号送显示器; 显示器显示这个字符。
21
字符模式下显存结构
22
图形模式显示原理 机内码 到字形码 转换模块 汉字机内码 机内码 汉字点阵 显示存储器 屏幕 显卡和显示器 汉字显示系统
23
内容 显示设备 汉字显示的原理 内码缓冲区和字形缓冲区 汉字显示输出过程 汉字终端
24
汉字 机内码 字形缓冲区 (显存) 内码缓冲区 屏幕 显示处理程序
25
内容 显示设备 汉字显示的原理 内码缓冲区和字形缓冲区 汉字显示输出过程 汉字终端
26
汉字显示输出过程
27
流程 应用程序需要显示汉字,那么它会调用系统提供的显示汉字函数或中断,调用的过程实际上仅是把汉字的内码和属性写到内码缓冲区;
汉字显示处理程序从内码缓冲区中取出汉字的内码和属性,调用地址映射模块处理; 地址映射模块根据汉字内码和它属性中的字体等信息,计算此汉字对应的汉字字形码在字形库中的位置,即地址码。然后把地址码返回汉字显示处理程序;
28
流程(续) 汉字显示处理程序根据返回的地址码和字体,从相应的字形库中得到此汉字的字形码,然后把字形码和属性作为参数调用字形变换模块;
字形变换模块根据汉字的字形码以及需要显示的字形属性(如字号、是否加粗、是否是斜体、是否有下划线等),把汉字的基本字形信息变换为字形属性要求的形状,返回给汉字显示处理程序; 汉字显示处理程序把变换后的字形码和它在屏幕上的位置(一般为X和Y坐标)送给汉字显示驱动程序;
29
流程(续) 汉字显示驱动程序调用位置转换模块,把屏幕位置转换为在显存中对应的地址; 汉字显示驱动程序根据该点阵在显存中的位置和显存的组织形式,把汉字点阵写到显存; 显卡定时把显存中的信息刷新到屏幕,此汉字就显示在屏幕上了。
30
内容 显示设备 汉字显示的原理 内码缓冲区和字形缓冲区 汉字显示输出过程 汉字终端
31
汉字终端 汉字终端是一个能处理汉字的固化计算机系统。它一般由主控板、显示器、键盘三大部分组成
32
工作原理 汉字显示模块 主机系统 屏幕 汉字字形库 汉字终端
33
三、汉字显示技术实例
34
内容 DOS下的汉字显示技术 Windows的汉字显示技术
35
1.显示输出模块 在DOS中,I/O设备是由BIOS中断处理程序驱动的,那么显示的驱动程序就是BIOS的中断处理程序,应用软件通过对BIOS的中断处理程序的调用来使用外部设备。 DOS下显示是通过10H号中断处理程序来实现的。
36
10号中断处理程序功能模块说明 功能号 功能说明 视频初始化 8 读当前光标处字符和属性 1 定义光标类型 9 向光标处写字符和属性 2
视频初始化 8 读当前光标处字符和属性 1 定义光标类型 9 向光标处写字符和属性 2 定义光标位置 10 向光标处写字符 3 读光标位置 11 定义屏幕颜色 4 读光笔位置 12 在指定坐标处写点 5 定义当前页 13 在指定坐标处读点 6 屏幕上滚 14 以TTY方式显示字符 7 屏幕下滚 15 取视频状态
37
字符集:GB2312定义的6763个汉字和682个符号,包括全角的字母和数字,标点符号、序号和罗马字母等。
DOS下的汉字字形库 字符集:GB2312定义的6763个汉字和682个符号,包括全角的字母和数字,标点符号、序号和罗马字母等。 汉字字形库一般有两种模式: 16×16的显示用点阵字形库(横向) 24×24打印用点阵字形库(纵向) 图形模式下实现显示,常用的图形适配器一般为VGA,汉字一般显示在640×480×16色的分辨率 每行40个汉字,共26行 第26行通常作为输入系统的提示行
38
在DOS下汉字显示在图形模式下,通过画点的方式来显示汉字点阵。
实现的基本思想是修改10H号中断处理程序,使得这个显示中断能够支持汉字的显示。 优点:应用程序不需要作任何的修改,就可以显示汉字了。
39
新中断处理程序执行过程 在16个子功能中,其中0号、2号、3号、6到10号和14号需要重新编写,其它的7个子功能可以沿用原来的。 中断装置
中断处理程序入口地址 中断装置 0号中断地址 1号中断地址 …… 10H号中断地址 4 和汉字显示无关的功能调用能,沿用原来的10H中断处理程序 RAM中的新的10H中断处理程序 ROM中的原来的10H中断处理程序 40 在16个子功能中,其中0号、2号、3号、6到10号和14号需要重新编写,其它的7个子功能可以沿用原来的。
40
内容 DOS下的汉字显示技术 Windows的汉字显示技术
41
Windows汉字字符集 在Windows中,汉字的字符集有两种形式:Unicode和ANSI Code Windows NT/2000/XP/2003的内核使用Unicode作为文字信息的编码,而应用程序则可以同时使用Unicode和ANSI Code来表达文字。所以有关字符串的API有两个不同字符集的版本:Unicode 版和ANSI Code版。 而Windows 95/98/ME一直使用单(双)字节结合的内码。单字节内码主要是ASCII,双字节内码则是ANSI Code,如GB2312、GBK、BIG-5等。 Windows CE则是一个统一使用Unicode的操作系统。不管是内核还是应用程序,字符的内码就是Unicode。
42
Windows汉字显示分析 Windows系统的核心部分管理分为核心(Kernel)、用户管理(User)和图形设备接口(GDI)。 Kernel完成内存管理、程序的装入与执行和任务调度等功能,它需要调用原MS―DOS中的文件管理、磁盘输入输出和程序执行等功能 User是一个程序库,它用来对声音、时钟、鼠标器及键盘输入等操作进行管理 GDI是一功能十分丰富的子程序库,它提供了图形与文字输出、图像操作和窗口管理等各种与显示和打印有关的功能,GDI是实现汉字等字符输出的核心模块。
43
Windows汉字显示分析(续) 当使用GDI的字符显示函数(如Textout)在窗口的用户区上显示汉字时,实际上是设备驱动程序根据GDI传递的物理字体的信息,从TTF字形库得到相应字符的字形后,向显存输出该字符的位图,然后GDI可以根据应用程序的要求,将该字符的字形作为一个位图进行各种处理。
44
在FONTINFO结构后,一般紧跟以下的一个或多个结构
汉字显示数据结构和原理 每个TTF字库都有一个字体信息结构FONTINFO结构,FONTINFO包含了字符输出所需的所有物理字体信息,包括字体的名称、字体点的大小和字符集等信息。 在FONTINFO结构后,一般紧跟以下的一个或多个结构
45
名称 说明 字符宽度表 保存每个字符的位图或矢量信息的偏移;Windows中的字体一般分为矢量字体(Vector Font)和光栅字体(Raster Font),如果是光栅字体,则这个偏移是相对于位图字形库的偏移;如果是矢量字体,则这个偏移是相对于矢量字形库的偏移。 位图字形库 字符集所定义的字符的位图信息,即用位图表示的字形信息 矢量字形库 采用矢量方式定义的每个字符的字形信息 字体名称 字体名称的字符串 设备名称 设备名称的字符串
47
windows汉字显示输出 Windows中将中文字符和西文字符均作为一个位图来处理和显示。虽然不同的字形库设计技术,使得存放在字形库中的汉字字形信息是不一样的,如矢量字体和光栅字体的表示就不同,但最终它们都能转换为由点阵构成的位图,从而显示在屏幕上。 Windows中所有字符输出的功能均是通过GDI库函数来完成,再由GDI调用相应设备驱动程序实现字符输出。字符的输出最常用的系统调用是ExTextOut()和TextOut()。
48
四、打印输出原理和基本结构
49
内容 打印设备 汉字打印概述 汉字打印原理 汉字打印过程 汉字打印机
50
打印设备 汉字的打印设备主要是打印机,一般分为三种:喷墨打印机、激光打印机和针式打印机。打印机和计算机的接口一般分为并口、串口和USB接口。 针式打印机 喷墨打印机 激光打印机
51
激光打印机原理
52
打印机的分辨率 分辨率的单位是DPI(dot per inch),是指在每一个平方英寸可以由多少个点构成,它直接关系到产品输出的文字和图像的质量好坏。 如一台产品的分辨率表示为360dpi,就是表示在一平方英寸的区域的表现力最高可以达到水平360个点,垂直360个点,总共129600个点。 分辨率越高,数值越大,就意味着产品输出的质量越高。
53
内容 打印设备 汉字打印概述 汉字打印原理 汉字打印过程 汉字打印机
54
打印技术的发展 CC-DOS中提供了汉字的打印功能,它采用软字库的解决方案,利用24×24的打印用点阵字库来输出汉字的字形,再进行必要的处理后送打印机打印汉字 硬字库方案,典型的是汉字打印机和激光照排技术 软字库方案也在不断优化中,它利用计算机软件技术加快了打印速度,引入了曲线和矢量字库,从而大大提高打印质量 Windows采用True Type字形技术来实现汉字打印,以及新的喷墨、激光打印技术的出现,使得汉字的打印质量进一步提高,完全可以满足用户对打印质量的要求。
55
内容 打印设备 汉字打印概述 汉字打印原理 汉字打印过程 汉字打印机
56
汉字打印原理 汉字的打印过程: 汉字打印一般可以分为两个部分: 汉字机内码转换为汉字的字形码 进行汉字字形码的变换和输出的格式控制
汉字字形送打印机 汉字打印一般可以分为两个部分: 打印驱动:汉字机内码转换为字形码,然后把汉字字形送打印机 打印控制:根据打印的各种参数设置(如字体、字号、行间距等)对打印输出进行控制,使得打印结果符合用户的要求
57
汉字打印原理(续) 软字库方案 操作系统提供各种软字形库,每个软字形库以文件形式存在,打印驱动程序通过访问字形库获得汉字的字形,从而实现汉字打印的驱动和控制,这是目前最常用的方法 硬字库方案 打印驱动程序直接把汉字机内码传递给打印机,由打印机完成从汉字机内码到字形码的转换并进行打印控制,最后打印出汉字。
58
内容 打印设备 汉字打印概述 汉字打印原理 汉字打印过程 汉字打印机
59
汉字打印过程
60
打印流程(1) 应用程序或系统把需要打印的汉字信息,包括机内码、格式信息等送打印驱动程序; 打印驱动程序首先根据接受到的汉字机内码从汉字字形库中获得汉字的字形码; 打印驱动程序然后把汉字的字形码和控制信息(如字号、字体等)送汉字打印控制模块;
61
打印流程(2) 汉字打印控制模块根据汉字的控制信息,对汉字的字形进行变换,然后把变换后的点阵信息送回打印驱动程序; 打印驱动程序把需要打印的信息汇总后送打印缓冲区,然后就完成了汉字的打印; 下面的工作是由后台打印进程控制,它负责把汉字打印缓冲区中的点阵信息按照一定的方法和策略分批通过电缆送给打印机;
62
打印流程(3) 打印机首先将接收到的数据暂存在缓存中; 当接收到一段完整的数据后,再发送给打印机的处理器;
处理器将这些数据组织成可以驱动打印引擎动作的类似数据表的信号组,对于激光打印机而言,这个信号组就是驱动激光头工作的一组脉冲信号。然后把这些信号送到打印的机械部分; 打印的机械装置把汉字信息打印在纸上,从而完成打印工作。
63
内容 打印设备 汉字打印概述 汉字打印原理 汉字打印过程 汉字打印机
Similar presentations