找回密码
 加入
搜索
查看: 7709|回复: 13

[系统综合] 寻求帮助--把汉字、数字、字母 变成0和1的矩阵 是什么技术

 火.. [复制链接]
发表于 2010-7-15 09:24:54 | 显示全部楼层 |阅读模式
各位大鸟

寻求帮助--把汉字、数字、字母 变成0和1的矩阵 是什么技术,有什么软件可以生成或识别码?
发表于 2010-7-15 09:53:06 | 显示全部楼层
变成0和1的矩阵???这个不大明白。

不过正则倒是能识别!不知道是不是我理解错了你的意思。
 楼主| 发表于 2010-7-15 10:02:19 | 显示全部楼层
回复 2# 水木子


哦,好像是叫点阵图。我想研究下验证码,想从这方面下手

比如1的点阵图类似于

00000
00100
01100
00100
00100
00100
00100
00100
01110
00000

也比如 汉字“春”,下图
回复 2# 水木子


哦,好像是叫点阵图。我想研究下验证码,想从这方面下手

比如1的点阵图类似于

00000
00100
01100
00100
00100
00100
00100
00100
01110
00000

也比如 汉字“春”,下图
空白换成0,实体换成1,就成0和1的点阵图了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-7-15 10:17:16 | 显示全部楼层
点阵字库?
 楼主| 发表于 2010-7-15 10:19:33 | 显示全部楼层
回复 4# 3mile


   恩,字库也可以啊
比如什么点阵的生成原理、识别 什么的

就想了解这方面的知识
发表于 2010-7-15 10:44:40 | 显示全部楼层
google了下:“点阵字库生成原理”
 汉字的点阵字模是从点阵字库文件中提取出来的。例如常用的16×16点阵HZK16文件,12×12点阵 HZK12文件等等,这些文件包括了GB 2312字符集中的所有汉字。现在只要弄清汉字点阵在字库文件中的格式,就可以按照自己的意愿去显示汉字了。
  下面以HZK16文件为例,分析取得汉字点阵字模的方法。
   HZK16文件是按照GB 2312-80标准,也就是通常所说的国标码或区位码的标准排列的。国标码分为 94 个区(Section),每个区 94 个位(Position),所以也称为区位码。其中01~09 区为符号、数字区,16~87 区为汉字区。而 10~15 区、88~94 区是空白区域。
  如何取得汉字的区位码呢?在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。其中第一个字节的值为区号加上32(20H),第二个字节的值为位号加上32(20H)。为了与ASCII字符区别开,表示汉字的两个字节的最高位都是1,也就是两个字节的值都又加上了128(80H)。这样,通过汉字的内码,就可以计算出汉字的区位码。
  具体算式如下:
  qh=c1-32-128=c1-160 wh=c2-32-128=c2-160
  或   
  qh=c1-0xa0 wh=c2-0xa0
  qh,wh为汉字的区号和位号,c1,c2为汉字的第一字节和第二字节。
  根据区号和位号可以得到汉字字模在文件中的位置:
  location=(94*(qh-1)+(wh-1))*一个点阵字模的字节数。
  那么一个点阵字模究竟占用多少字节数呢?我们来分析一下汉字字模的具体排列方式。
  例如下图中显示的“汉”字,使用16×16点阵。字模中每一点使用一个二进制位(Bit) 表示,如果是1,则说明此处有点,若是0,则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。字模的表示顺序为:先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。

对于其它点阵字库文件,则也是使用类似的方法进行显示。例如HZK12,但是HZK12文件的格式有些特别,如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。因为字库设计者为了使用的方便,字模每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,每个字模大小为 24字节,虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。 还有UCDOS下的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)这些打印字库文件,每个字模占用24*24/8=72字节,不过这类大字模汉字库为了打印的方便,将字模都放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了。
  这样我们就完全清楚了如何得到汉字的点阵字模,这样就可以在程序中随意的显示汉字了。
 楼主| 发表于 2010-7-15 10:58:33 | 显示全部楼层
回复 6# 3mile


   原理 看不懂

在网上没找到例子。。
 楼主| 发表于 2010-7-15 11:37:06 | 显示全部楼层
阿福,有类似的讲解,太深奥。。。看不懂~~~
发表于 2010-7-15 13:21:27 | 显示全部楼层
我记得在以前学C的时候,想在DOS输出汉字,就要自己做字库.
也许你可以搜下,
C DOS 汉字
发表于 2010-7-15 15:57:08 | 显示全部楼层
好深奥的研究啊,不会!
发表于 2010-7-16 09:46:01 | 显示全部楼层
论坛里面有一个这样的东西,但是作者没放出源码。
 楼主| 发表于 2010-7-16 14:18:34 | 显示全部楼层

阿福 、阿福 快快现身
发表于 2010-7-18 19:45:30 | 显示全部楼层
GDI DIB位图编程,二值化,
发表于 2010-7-21 14:30:10 | 显示全部楼层
你可以看哈他们做QQ登陆器的例子
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 06:01 , Processed in 0.085251 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表