中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » GBK版MkFon.com指定汉字的小汉字库生成软件
作者:
标题: GBK版MkFon.com指定汉字的小汉字库生成软件 上一主题 | 下一主题
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『楼 主』:  GBK版MkFon.com指定汉字的小汉字库生成软件 使用 LLM 解释/回答一下

GBK版MkFon.com——指定汉字的小汉字库生成软件

程序从文本文件读入缓冲区,过滤出不重复汉字表,排序后,
从C盘根目录或MKFON所在目录的GBk16中或
从C盘根目录或MKFON所在目录的HZk16中取字模信息,
将汉字总数、汉字内码、汉字字模数据写入二进制小汉字库.FON。

除不提供文本文件名时只鸣叫外,运行有出错信息、成功信息。

帮助信息见下:

MaKe *.FON GBK版小汉字库生成器 v1.20 (C)2009.6 by Luo Ming An罗明安
aka 又名 born2be/borntobe/szborn2be/szborntobe/本是/苏州本是
Make a small hz lib with font data from GBK16/HZK16 从命令行文件中
for hz specified in a textfile entered on command line 生成小汉字库*.FON

Usage用法:
MKFON myfile.txt
Makes a small MYFILE.FON from GBK16/HZK16.
(REName your hz lib as such if it is not so named.)
生成小汉字库MYFILE.FON(如果汉字库名非GBK16/HZK16,请换名REN。)
Thanks: Automatic judgment of GBK hz lib format is based on Yaya's advice.
鸣谢:GBK字库格式智能判断基于Yaya樊建业的建议。

.FON Format格式:
OFFSET地址 CONTENT内容
------------------ ----------------------
0000 --0001 # of HZ 汉字总数
0002 --0003 HZ1 code 第1个汉字内码
0004 --0005 HZ2 code 第2个汉字内码
... ...
2+#*2+0 --2+#*2+31 HZ1 font 第1个汉字字模

关于GBK字库不同格式的补充说明:
GBK码编码顺序的所有码表文件都是gbk.txt;
但由于各种格式字库中字模排列次序不同,所以应该使用不同的公式来提取字模。
gbk.DZK格式字模的排列次序与码表顺序文件gbk.txt中的排列相同,
GB2312编码采用公式 ((ch1-0xa1)*0x5e + (ch2-0xa1))*0x20 确定;
GBK编码采用公式 ((ch1-0x81)*0xbe+(ch2-0x40)-(ch2/0x80))*0x20 确定;
hzk16.gbk另有规律——主要是因为要照顾DOS中通用的GB字库hzk16:
;假设汉字高位在AH/ch1,低位在AL/ch2中,
;rec=A+(AH-B)*C+(AL-D)-(AL\80h)
;if AH>A0h then
; if AL>A0h then '1-94区(按5Eh个汉字/区计算):A1~FE,A1~FE
; rec=(AH-A1h)*5Eh+(AL-A1h)
; else '159-254区:A1~FE,40~A0
; rec=5Eh*5Eh+20h*5Eh+20h*60h+(AH-A1h)*60h+(AL-40h)-(AL\80h)
; endif
;else
; if AL>A0h then '95-126区:81~A0,A1~FE
; rec=5Eh*5Eh+(AH-81h)*5Eh+(AL-A1h)
; else '127-159区:81~A0,40~A0
; rec=5Eh*5Eh+20h*5Eh+(AH-81h)*60h+(AL-40h)-(AL\80h)
; endif
;endif

打开gbk16,判断前4字节,gbk.DZK是00 00 7f ef,hzk16.gbk是00 00 00 00。这样就可以实现。


chenall已经把这个字库应用到GRUB4DOS菜单上:
http://bbs.znpc.net/viewthread.php?tid=5854&pid=44171

Last edited by 本是 on 2010-3-4 at 13:42 ]


附件 1: mkFonGBK120.zip (2009-6-30 06:04, 2.99 KiB,下载次数: 189)


my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2009-6-20 13:12
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

祝贺!


2009-6-21 03:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

不知UCWIN中所用的是哪种GBK16字库。
经测试,使用HZK16.GBK(重命名为gbk16),简码显示正常,gbk码“珺”显示为“宫”。
经测试,使用“点阵字库生成器 V3.8 ”生成的gbk.DZK(重命名为gbk16),显示乱码。

ConfigP.Mnu可以直接加载gbk.DZK。

上传gbk.DZK

Last edited by yaya on 2009-6-22 at 06:03 ]


附件 1: gbk.part1.rar (2009-6-22 06:02, 292.97 KiB,下载次数: 85)
附件 2: gbk.part2.rar (2009-6-22 06:03, 114.57 KiB,下载次数: 72)
2009-6-22 06:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
byxyk
初级用户





积分 112
发帖 54
注册 2007-6-18
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

不知是何问题。
两个字的文本文件,生成后的字库是乱套的,50多k。

附件怎么贴上的?我不会。
上传文件 用户名 mfyll4 文件名 1568.rar


2009-6-26 22:53
查看资料  发短消息  网志   编辑帖子  回复  引用回复
byxyk
初级用户





积分 112
发帖 54
注册 2007-6-18
状态 离线
『第 5 楼』:  上的补充 使用 LLM 解释/回答一下

vpc5.0 中运行有问题。
在xp的cmd中运行,生成字库正常。


2009-6-26 23:21
查看资料  发短消息  网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

3-5楼所述确实存在,已在新版中更正。请重新下载。

另,请YaYa下载1.10版后,检测一下,看对你所说的格式的字库字模有没有取对。先谢了!




my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2009-6-27 10:59
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

1.10版经测试,使用hzk16.gbk可以正常显示。使用gbk.DZK不正常。

Last edited by yaya on 2009-6-29 at 00:57 ]


2009-6-28 23:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

你测的是哪种格式的GBK字库?我这儿的通用格式中GBK扩展字能正常取字模。




my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2009-6-28 23:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

我在7楼一开始是用gbk.DZK测试的。使用hzk16.gbk测试正常。
hzk16.gbk的算法可能比较特殊,gbk.DZK的算法比较简单。hzk16.gbk比较常用?

引用byxyk的话,MkFon.com可使用dos常用字体,不可使用windows生成字体(实质上是算法不一样,字体位置不一样)。

Last edited by yaya on 2009-6-29 at 03:59 ]


2009-6-29 00:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

其实,通用hzk16.gbk的字模摆放顺序,我是从最原始的分区显示结果进行观察,比对Win98就附在窗口系统中的gbk.txt的码表顺序,再分区计算而来的。不是根据现成的GBK码表结构及其计算公式(没有一个能正确取通用版hzk16.gbk的字模)。

另,我想问一下YaYa: 你说的那种格式的字库的码表顺序文件还是gbk.txt吗?还是不同?




my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2009-6-29 10:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

gbk.DZK格式字库的码表顺序文件与gbk.txt相同,hzk16.gbk则不同。
GB2312编码采用公式 ((ch1-0xa1)*0x5e + (ch2-0xa1))*0x20 确定.
GBK编码采用公式 ((ch1-0x81)*0xbe+(ch2-0x40)-(ch2/0x80))*0x20 确定.


2009-6-29 23:37
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

是否应该如此表述:
GBK码编码顺序的所有码表文件都是gbk.txt;
但由于各种格式字库中字模排列次序不同,所以应该使用不同的公式来提取字模。
gbk.DZK格式字模的排列次序与码表顺序文件gbk.txt中的排列相同,
hzk16.gbk另有规律——主要是因为要照顾DOS中通用的GB字库hzk16。

1.10中出了一个可笑的bug,所以更新为1.11版,可以正常取gbk.dzk的字模。




my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2009-6-30 00:08
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

表述准确。
现在已很完善。1.11版本使用gbk.DZK正常。

提醒各位朋友,可以使用如下命令:
MKFON config.sys (HZK16.GBK重命名为gbk16)
MKFON /config.sys (gbk.DZK重命名为gbk16)


2009-6-30 00:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

建议:打开gbk16,判断前4字节,gbk.DZK是00 00 7f ef,hzk16.gbk是00 00 00 00。这样就不用增加"/"开关。统一命令格式,方便使用,更智能一些。


2009-6-30 04:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

1.20版本很好用。感谢本是再一次更新。


2009-6-30 22:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: