c语言矢量字体库,利用C语言编程实现小型矢量汉字库的创建及调用.pdf

本文介绍了如何使用C语言编程创建小型矢量汉字库,以解决在图形界面应用中汉字显示的美观和速度问题。通过理解矢量字库的结构,建立包含索引信息和矢量数据区的字库,并探讨了如何处理汉字的索引信息以方便程序调用。
摘要由CSDN通过智能技术生成

利用C语言编程实现小型矢量汉字库的创建及调用,c语言函数调用,java调用c语言,c语言调用dll,python调用c语言,c语言调用汇编函数,c语言调用matlab函数,c语言中函数的调用,c语言函数的调用,c语言调用外部函数

维普资讯

编程语言

RoGRA LANGUAGE

利用 C语言编程实trill|型矢量汉字库昀创建及调用

西安通信学院 董有积

摘 要 本文简要介绍利用c语言编写程序,建立一个小型是量汉字库的方法

关键词 点阵字库,矢量字库,索引信息

我 们在 编写 图形 界面 应 用程 序 时 ,往 往在 应 用 要进行 矢量 汉字显示 ,首 先根据 其机 内码按 下面

软件的封面要用 到较大 的字体做 标题 。如果用点 阵字 公式 :

库进行放 大 显示 .则会在 显示字体边缘 出现锯 齿状 , 汉字的索引信息首址一 ((汉字机匈码高位字节

产 生失 真 ,不 美观 ;若 用高点 阵的字库 ,速 度 卫太 慢 一 0Xal+汉字机内码低位字节一0Xa1)×6

但 改 用矢量 字库进 行 显示 ,效 果 就 不 同 ,不仅 显示 计算出其索引信息首址,然后从指定的矢量字库按索

速度快而且字体边 缘平 滑无 失真 ,同时还 可任 意进行

引地址连续读出6个字节的索引信息,再根据索引信

无级 缩放

息中字形数据在库中的位置及字形数据的长度 .从库

设 计软 件封面仅 需 步量 的汉字 .为此若 带 一个庞

中读出相应的字形数据 ,最后裤码还原得到其轮廓 多

大的是量字库 ,

// 汉字字模提取的基本原理 // 如同画点画线一样 ,汉字是经过电脑画出来的。这样,就必须 // 为每一个字准备一个数组 , 这就是“ 字模 ” 。字模分为点阵和矢量 // 两种 ,我们常用的是点阵字模 ,一般有 1 6 x1 6和 2 4 x 2 4两种 , // 分别称为16点阵字和24点阵字 。它们的原理是依据点阵中的 0和 l // 把汉字画出来 ( 即 0表示不画点 , 1表示 画点) 。本文以16点阵的 // 汉字显示为例, 因此需访问UCDOS中的字库文件 HZK1 6 。 HZK16 // 的内容是按照字节存放的 ,即把 1 6 x1 6个“ 位” 变成 32个“ 字节 ” // 来存放 。另外 ,每个汉字在字库中有唯一的区位码与之对应 , 根据 // 汉字的机内码可以确定其区位码及其在字库中的起始位置,就可以从字库中 // 取出汉字字模 。具体步骤如下 : // 根据汉字的机内码 推算 出区位码 : // 区码= 机内码 高字节一 A0 H (因为汉字编码是从0xa0区开始的,所以文件最前面就是从0xa0区开始,要算出相对区码) // 位码= 机内码 底字节一 A0 H // 根据 区位码计算出汉字在字库中的偏移量( 即汉字在字库中的位置 ) : // 偏移量 L = [ ( 区码一 1 ) x 94 + ( 位码一 1 ) ] x 32 // 从该偏移地址中读取32字节(16*16位)或者128字节(32*32位),就是相关字符的点阵字模代码. // 1、区码减1是因为数组是以0为开始而区号位号是以1为开始的 // // 2、(94*(区号-1)+位号-1)是一个汉字字模占用的字节数 // // 3、最后乘以32是因为汉字库文应从该位置起的32字节信息记录该字的字模信息 // // 4、94为区位码94*94的方阵;32为从偏移地址中读取32字节(16*16位)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值