搜索
bottom↓
回复: 13

求高人指点,GBK点阵字库的计算公式

[复制链接]

出0入12汤圆

发表于 2012-11-19 20:20:10 | 显示全部楼层 |阅读模式

这2个文本文件是按照编码顺序排列的,gbk-gb18030.txt 是 根据 中国GBK码与Unicode码及原字形对照表.txt去掉无关字符排列的.
现在想用牧马字符这类的 文本文件转 点阵工具来转换,
转换结果成功,但是 计算汉字在 点阵库中的地址公式不明

网上找了个这个
我们把第一个字节代表的意义称为区,那么GBK 里面总共有126 个区(0XFE-0X81+1 ),
每个区内有 190 个汉字(0XFE-0X80+0X7E-0X40+2 ),总共就有 126*190=23940 个汉字。我
们的点阵库只要按照这个编码规则从 0X8140  开始,逐一建立,每个区的点阵大小为每个汉字
所用的字节数*190。这样,我们就可以得到在这个字库里面定位汉字的方法:

        当GBKL<0X7F 时:Hp=((GBKH-0x81)*190+GBKL-0X40)*(size*2) ;
        当GBKL>0X80 时:Hp=((GBKH-0x81)*190+GBKL-0X41)*(size*2) ;

    其中GBKH、GBKL 分别代表GBK 的第一个字节和第二个字节(也就是高位和低位) ,size
代表汉字字体的大小(比如16 字体,12 字体等),Hp 则为对应汉字点阵数据在字库里面的起
始地址(假设是从0 开始存放) 。

结果发现,字库前面部分,也就是 gb2312字符之前的,编号 0-6079 的汉字 正常
之后的,就错乱了,不知道公式了
求大侠指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入12汤圆

 楼主| 发表于 2012-11-19 20:21:13 | 显示全部楼层


这个是牧马字模软件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-11-19 20:31:48 | 显示全部楼层
洋洋啥都放送出来啦,顶顶,要猛顶

出0入12汤圆

 楼主| 发表于 2012-11-20 08:25:23 | 显示全部楼层
呀,没人弄过这个呀????????

出0入0汤圆

发表于 2012-11-20 16:39:06 | 显示全部楼层
skynet 发表于 2012-11-20 08:25
呀,没人弄过这个呀????????

下载也不顶帖?哈哈
顶帖不会怀孕滴

出0入0汤圆

发表于 2012-11-20 17:04:22 | 显示全部楼层
也许你的算法有问题, 试试下边的

//GBK算法
offset = ((hanzi[0] - 0x81) * 190 + (hanzi[1] - 0x40) - (hanzi[1] / 128)) * 点阵占用字节;

//GB2312算法
offset = ((hanzi[0] - 176) * 94 + (hanzi[1] - 161)) * 点阵占用字节        //16区以前独立成字库
offset = ((hanzi[0] - 161) * 94 + (hanzi[1] - 161)) * 点阵占用字节

出0入12汤圆

 楼主| 发表于 2012-11-20 20:04:54 | 显示全部楼层
cheungman 发表于 2012-11-20 17:04
也许你的算法有问题, 试试下边的

//GBK算法

请问大师,按照你的说法,是不是说,那个文本文件里面,要把属于GB2312的字符单独出来,GBK文本里面,不包含GB2312字符
这样搞工作量大了啊.......

出0入0汤圆

发表于 2012-11-20 20:24:58 | 显示全部楼层
你好像用的是GBK字库, 所以你要用GBK公式寻址.  我不过是多附送一个GB2312算法, 让一些看到此贴的网友了解一下GB2312字库寻址公式, 我实际测试过的, 应该没问题.

出0入0汤圆

发表于 2013-1-17 00:26:43 | 显示全部楼层
cheungman 发表于 2012-11-20 17:04
也许你的算法有问题, 试试下边的

//GBK算法

6楼大侠的计算公式perfect

出0入0汤圆

发表于 2013-3-8 16:41:35 | 显示全部楼层
标记 地标

出0入0汤圆

发表于 2013-3-8 18:54:37 | 显示全部楼层
想试试看可以不,谢谢好心分享

出0入0汤圆

发表于 2013-9-6 10:04:58 | 显示全部楼层
研究研究!

出0入0汤圆

发表于 2013-9-8 03:45:09 | 显示全部楼层
已经下载,谢谢,有空弄弄

出0入0汤圆

发表于 2019-10-9 11:45:09 | 显示全部楼层
Addr = (((text[i]-0x81)*192)+(text[i+1]-0x40))*n_size;
n_size = 汉子占用的字节数
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 01:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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