请教如何获取字体的中文点阵字体下载信息

[原创]提取汉字点阵数据的相关知识 - 永夜的极光的博客 - 编程中国
[原创]提取汉字点阵数据的相关知识
&&&&&&& 提取汉字点阵,一般是用于液晶屏显示,因为现在的液晶一般都是点阵式的,只要能获得汉字的点阵,就可以在液晶上显示所需的汉字,这样将极大的方便用户使用仪器和仪表.
&&&&&&& 这样就需要知道如何提取汉字点阵的数据,这些数据保存在系统的字库中
&&&&&&& 汉字字库分为两种,点阵字库和矢量字库,UCDOS中使用的是点阵字库,而Windows中采用的是矢量字库
&&&&&&& 点阵字库只能表示固定大小和固定字体的汉字,其实相当于一幅汉字的图片了,什么都不能改变,在DOS时代,这样已经是完全够用了,但是在Windows时代,汉字的表现变得丰富多彩了,如果使用点阵字库,将肯定无法满足需求,因此Windows采用了矢量字库,其大小,字体等均是可变的.目前的Window使用的是TrueType字库(简称TT,Windows中字库文件的扩展名TTF就是TrueType Font的缩写),有关TT的资料,可参考:
提取点阵字库的方法:&&&&&&& UCDOS的字库有12*12,16*16,24*24三种,一般比较好找的是12和16点阵的,24点阵的字库我没找到.需要提取这些点阵的数据,必须根据汉字的区位码来读取.原理和提取方法见:
&&&&&&& 另附一个读取12*12点阵汉字库的C源程序
提取矢量字库的方法:&&&&&&& 实际上,由于矢量字库的强大功能,一般的字模软件(也就是汉字点阵提取软件),都是读取矢量字库.因此需要着重介绍一下提取矢量字库.
&&&&&&& 我们实际上想获得的是汉字的点阵数据(因为液晶屏是点阵型的),而矢量字库中储存的是一些曲线的数据,不能象点阵字库一样直接读取就能显示.如果想读取矢量数据,然后画图,涉及到的知识比较复杂,所以一般采用间接的方式,就是先设置字号,字体,加粗,斜体等,然后将这个字显示到位图上,之后通过读取位图的各点数据,来获得汉字的点阵数据.
&&&&&&& 下面提供一个VB间接读取点阵数据的例子
(程序正在测试,稍后添加)
下面是两个来自CSDN的C源码,
可能有用的几个API:, ,
利用API直接取得点阵的方法:
浏览218998次
(26488)(21241)(14344)(13569)(10811)(8818)(6220)(5983)(5970)(5571)如何获得汉字点阵信息
摘要:本文叙述了汉字库的结构及汉字点阵信息的获得方法,并用VisualBasic5.0进行编程,调用UCDOS中48*48(48行乘48列)点阵的汉字库,获取汉字点阵数据,显示在文本框中,同时在图片框中用画点的方法把该汉字画出来。这是15年前自己写的一篇论文,好像还有参考价值,特收录在此。
1.48*48点阵汉字库的结构
& 大家在计算机屏幕上看到的汉字是由一系列的点构成的,如果用针式打印机把汉字打印在纸上,可以更清楚地看出是由一组黑点组成,这组黑点可能是24*24的点阵,如果是16*16的点阵看得就更清楚,如果是48*48点阵,因为单位面积的点数增加,就看不出是由点组成的汉字了。计算机在显示或打印汉字时要调用汉字库。
&因为每个字节(8位的二进制数)数据可以描述8个点,(1代表黑,0代表白),所以用6个字节的数据就可以确定48个黑白点,48*48点阵汉字数据的前6个字节描述第一行的48个点,接着的6个字节描述第二行的48个点,依此类推,最后的6个字节描述第48行的48个点,如此构成48*48点阵的一个汉字,所以一个48*48点阵的汉字需要288个字节的数据。如果是一个16*16点阵的汉字,就可以用2个字节描述一行16个点,接下来的2个字节描述下一行的16个点,依此类推,一个16*16点阵汉字需要32个字节数据就够了。所以16*16点阵汉字库要比48*48点阵汉字库小得多。
&国标汉字编码表(GB2312-80)是一个二维表,有94行94列,最多可容纳94*94=8836个汉字或符号,而实际上则包含6763个汉字,另外还有一些符号,其余都是空位。对编码表的行和列进行编码可以得到区位码,就是把汉字在编码表上对应的区号和位号合起来得到的四位数字编码,表中的行为区,区号在前,表中的列为位,位号在后,比如“啊”字的区位码是1601,即16区01位,(前15区是符号)。
&UCDOS中fnt子目录中的“hzk48s“文件,就是48*48点阵的宋体汉字库,它占据1904K字节。包括了国标区位码中94个区,每区94个位的所有汉字,汉字库是按照先区后位顺序存储汉字的。先存第一区的94个汉字,再存第二区的94个汉字,依此类推,参见区位码表。所以48*48点阵汉字库的结构是,先是第一区的第一位的288个字节,然后是第一区的第二位的288个字节。如此,最后是87区的第94个汉字的288个字节。
2.如何获取汉字的点阵信息
&获得48*48点阵信息的方法是:比如要得到“啊”字的48*48=288个字节的点阵信息,1)首先要知道“啊”字的机内码,这里还是先介绍一下机内码的概念,机内码是使用编码表的二进制值编码,由2个字节的代码组成。行为第一字节,列为第二字节,第一、二字节的最高位均设置为1,例如“啊”字编码表中行、列对应的二进制值0001,转换为十六进制数得B0A1,此为“啊”的机内码。机内码可以通过VB编程得到:zf$ =
“啊” ,zf1 =
Hex(Asc(zf$)),此时zf1=B0A1就是“啊”的机内码的十六进制数,参见程序8~9行。
2)然后要得到“啊”字的区位码。“啊”字所在的区和位的位置,可以通过查区位码表得到,也可以通过区位码和机内码的转换公式得到。区位码和机内码的十进制数转换公式是:Q(区码)=机内码第一个字节-160,W(位码)=机内码第二个字节-160。通过对上述公式进行编程可以得到区码q$
= "&H" & Left(zf1, 2) ,q = Val(q$) &
160,位码w$ = "&h" & Right(zf1, 2) ,w = Val(w$) &
160,此时q=16,w=01,“啊”字的区位码是1601。参见程序10~13行。
3)有了区位码,下面的问题就是如何通过区位码找到“啊”字的点阵信息,上面说到汉字的点阵信息在汉字库中是按照区、位存储的,每个48*48点阵的汉字占288个字节,那么,某个汉字的点阵数据与该汉字的区、位码必须存在一定的对应关系,这个对应关系是:m = ((q - 1) * 94 + w - 1411) *
288,其中m就是我们要找的该汉字的288个字节点阵数据的起始位置,q是区号,w是位号。利用这个公式,通过VB编程,(参见14行程序)可以很容易的读取ucdos中汉字库二进制文件中的“啊”字的48*48点阵数据如下:CE01823FFFFFFF01C1FFB1C738EC0007001C738C80007001CC1C7C73B071C7001C73A071CC7001C1C1C1C738C71C7001C738C71CC7001C1C1C1C71FFC1C738E71C07001C039C80007001CC。
3.如何验证所得到的数据就是“啊”字的48*48点阵数据呢?一是可以在纸上画出48条行线和48条列线,在行列的交叉点上描点的方法,先描第一行的6个字节6*8=48个点,接着再描第二行的48个点,依此类推,描完48行就能看出这个汉字的模样了,这种方法太麻烦,下面介绍一种用计算机描点的方法:首先取一个字节的点阵数据,然后把该数据的每一位分离出来,分离的方法就是把十进制数转换为二进制数的方法,即“除二取余”,被转换的数被2去除,如果能够整除则取0,不能被整除则取1,参见程序36~44行。然后根据扫描数据的每一位判断是0还是1,是1就在屏幕上画一个红点,是0就在屏幕上以背景色画一个不可见的点,参见程序45~53行。
4.编程方法:利用VisualBASIC5.0进行编程调用汉字库点阵信息非常方便。程序1~6行是设置全局变量,7~33是命令按钮的事件过程,其中8~14行的作用前面已经叙述,15~20行是读取数据文件。21~22行的作用是对数据进行处理,23行是把数据显示在文本框中。24~33行是为了描点而设置x和y坐标。35~54行是在图片框中把汉字画出来的子程序,前面已经说明。Form表单上放置text和picture控件和一个命令按钮。属性采用默认值。
5.程序清单如下:
As Integer
Private Sub Command1_Click()
Hex(Asc(zf$))
"&H" & Left(zf1, 2)
"&h" & Right(zf1, 2)
Val(q$) - 160
Val(w$) - 160
((q - 1) * 94 + w - 1411) * 288
"d:\ucdos\fnt\hzk48s" For Binary As #1
= 1 To 288
Mid$(b, 2, 2) &= "&0f" Then b = "0" & b
Text1.Text = Text1.Text + b + Chr(10)
/ 6 && Int(i / 6) Then
Public Sub huahanzi()
/ 2 = Int(b / 2) Then
Picture1.DrawWidth = 1
Picture1.ScaleMode = 3
Mid$(s, L, 1) = "1" Then
Picture1.PSet (px + L, py), QBColor(12)
Picture1.PSet (px + L, py), BackColor
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。点阵取模软件下载V2.1 免费中文版_字模提取软件西西软件下载
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
相关软件 /中文/ /中文/ /中文/ /中文/ /中文/ /中文/ /中文/ /英文/ /中文/ /中文/顶好评:50%踩坏评:50%请简要描述您遇到的错误,我们将尽快予以修正。轮坛转帖HTML方式轮坛转帖UBB方式
29.0M/英文/6.3
33.8M/中文/4.3
22.3M/中文/3.7
303M/中文/1.3
651.2M/中文/2.9
41.1M/英文/5.2
11.2M/中文/7.2
取模方式:C51格式,A51格式,数据。可用于中文汉字字模提取。
安卓官方手机版
IOS官方手机版
点阵取模软件 V2.1 免费中文版
下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。>> 通过一段源码演示如何动态获取某种字体的文字点阵信息。
通过一段源码演示如何动态获取某种字体的文字点阵信息。
所属分类:
下载地址:
GetTextFontLattice.r文件大小:234.62 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
通过一段源码演示如何动态获取某种字体的文字点阵信息。-Through a section of source code demonstrate how to dynamically access the text of a font bitmap information.
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
&iphist.dat&0.00 B19-07-06 15:57
Project1.cfg962.00 B17-07-06 16:19
Project1.dof2.28 kB17-07-06 16:19
Project1.dpr251.00 B17-07-06 16:14
Project1.dsk5.83 kB05-07-06 00:28
Project1.exe506.00 kB17-07-06 16:22
Project1.res876.00 B04-07-06 22:59
Project1.~dpr188.00 B04-07-06 23:36
Project1.~dsk5.84 kB05-07-06 00:03
Unit1.dcu4.98 kB17-07-06 16:22
Unit1.dfm1.34 kB17-07-06 12:48
1.83 kB17-07-06 16:18
Unit1.~dfm1.34 kB17-07-06 12:48
Unit1.~pas1.82 kB17-07-06 16:18
&获取文本点阵&0.00 B15-03-08 22:48
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载GetTextFontLattice.r
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:512.404ms - init:0.1;find:0.8;t:0.5;tags:11.3;related:233.1;comment:0.4; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧请教如何获取字体的点阵信息?
[问题点数:100分,结帖人BombZhang]
本版专家分:5761
CSDN今日推荐
本版专家分:236
本版专家分:120667
2004年12月 总版技术专家分月排行榜第二
2005年7月 荣获微软MVP称号2007年7月 荣获微软MVP称号2006年7月 荣获微软MVP称号
2004年12月 VC/MFC大版内专家分月排行榜第一2003年3月 VC/MFC大版内专家分月排行榜第一
2005年2月 VC/MFC大版内专家分月排行榜第二2004年11月 VC/MFC大版内专家分月排行榜第二
本版专家分:12915
匿名用户不能发表回复!|
CSDN今日推荐}

我要回帖

更多关于 点阵字体怎么打出来 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信