- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TurboC程序中点阵汉字库和曲线汉字库的显示-湖南宁乡师范学校
PAGE 25 - Turbo C程序中点阵汉字库和曲线汉字库的显示 主题:TC程序中汉字显示 关键词:UCDOS点阵字库,曲线字库 长沙市信息技术学校 李水生 2011年中秋 在Turbo C语言教学和程序开发中,经常遇到要在屏幕显示汉字问题。早期windows95、windows 98时期可借助UCDOS汉字平台,在TC程序中显示汉字,而今,在windows xp、windows 2000中,由于兼容性问题,无法安装和运行UCDOS,因而TC程序中不能直接显示汉字了。本文介绍TC程序中,进入图形模式,无需任何汉字平台支持,直接读取汉字库字模信息,用TC画点函数putpixel(考虑到通用性,没有使用显卡特性和显示寄存器加速输出)显示多种字库汉字。本文仍用UCDOS 16点阵、24点阵、48点阵、曲线轮廓(postscript)汉字库和西文16点阵、西文曲线轮廓字库(字库文件名依次为 hzk16、hzk24k、hzk48s、hzkpsxk、asc16、ascps)为例,编程实现西文状态下的汉字显示。为此,我们必须首先了解UCDOS字库文件结构和读取步骤。其次是编程算法和思路以及必要条件。 一、点阵字库结构和读步骤 1 先根据一个汉字高字节机内码计算出区码(QM),再根据低字节计算出位码(WM); (设汉字串指针为 hzstr已指向一个汉字首字节) 2 由区码和位码计算汉字字模信息在字库文件中的索引位置(record); 3 由索引值计算字模信息在字库文件中的起始偏移量(point); 4 定位文件位置指针到起始偏移量处,连续读取单字点阵字节数到缓冲区(buf)。 计算公式分别是: 1)QM=(*hzstr-0xa0)0x7f,WM=(*(hzstr+1)-0xa0)0x7f 2) record=(QM-16)*94+(WM-1) 注意:16点阵时 record=(QM-1)*94+(WM-1) 3) point=record*size 其中:size为不同点阵汉字字节数,16点阵size=32,24点阵size=72,48点阵size=288 西文字库偏移量比较简单,公式为 point=asc*16 其中 asc为要显示的单个西文字符,因为西文字符是单字节,故size=16 二 postscript曲线轮廓字库结构和读取步骤 首先,此种字库结构比点阵字库复杂许多,它存储的是一些控制如何画线及其坐标信息。每个曲线轮廓字库都两部分组成: 汉字索引区、字型数据区。汉字索引区由许多索引项组成。每个索引项由六个字节组成, 其中字型数据的偏移地址4 个字节, 字型数据的长度占2 个字节。由汉字的索引提供的字型数据偏移地址及字型数据的长度即可得到该汉字的字型数据。为了确定一个汉字在字库汉字索引区的偏移量, 由汉字机内码或区位码即可求得汉字在曲线轮廊字库索引区中的偏移量, 计算方法如下: 1) 区码QM和位码WM以及索引值的计算与点阵字库相同 2 )偏移量OFFSET=record*6 而英文字体(字库名为 ASCPS)的偏移量比较特殊,它共有lO种字体,每种字体有1O0个英文字符,可以这样确定偏移量 (设字体号为N ,英文字符的ASCII码为CC): offset=(N*100-(CC-32))*6 在UCDOS 5.0 中从此偏移量连续读取4 个字节转换成长整型数, 即为字型数据地址(Address ) , 紧接着 3 个字节转换成整型数便为字型数据的长度(Length )。 在UCDOS 6.0 中从此偏移量地址连续读取4 个字节转换成长整型数后, 还需将此长整型数减去十六进制 0后才为字型数据地址, 紧接着2 个字节转换成整型数便为字型数据的长度(Length ), 包括符号库。但英文字符不需要调整。 4、字型数据的格式 三次曲线字库的字形数据需要解释和重组。读取三次曲线字库的字形数据时每次只能读取四位,方法是当某一字节第一次被读取时, 读取低四位,当该字节再次被读取时, 读取高四位。当读取的数据不需要被当做坐标量时, 读取的四位数据就会被当做命令(控制字),并进行解释。如果当前命令需要坐标量, 坐标量分为绝对坐标值和坐标增量。绝对坐标值为一个字节, 为读取的两个四位数据的重组, 重组方法为先读取的四位数据作为高四位, 后读取的四位数据作为低四位。坐标增量为四位或六位的二进制数, 其中最高位为符号位。四位坐标增量为当前读取的四位数据。坐标增量为六位二进制数时同样是通过重组得到的, 方法是将第 一次读取的四位数据作为六位数据的高四位, 第二次读取的四位数据的高两位作为六位数据的低两位, 得到第一个坐标增量,然后将第二次读取的四位数据的低两位作为六位数据的高两位, 第三次读取的四位数据作为六位数据的
有哪些信誉好的足球投注网站
文档评论(0)