搜索
bottom↓
回复: 229

GB2312字库制作方法

[复制链接]

出0入0汤圆

发表于 2007-1-8 16:02:17 | 显示全部楼层 |阅读模式
今天花了几个小时做了一下汉字的字库,以前做过16*16点阵的字库但是花了很长时间。现在摸索出简单的方法供大家参考。希望对大家有所帮助。

点击此处下载armok01140782.rar

上面上传的这个文件里包含了一下内容:

st12.bin 和 st16.bin 为宋体字库

kt12.bin 和 kt16.bin 为楷体字库

ziku.txt为按顺序写有8178个汉字和字符的txt文档

ziku.exe 我写的一个小程序,配合“牧马字模0.84测试版”生成bin文件。

“牧马字模0.84测试版”程序在本站

http://www.ouravr.com/es_lcd_chinese_pixel_generat_software.html



现在说一下字库制作方法。

1)打开“牧马字模0.84测试版”程序

2)打开文件ziku.txt(上传的那个文件)

3)选择你要的取模方式和大小  然后按上方“输出”按钮 并等待其完成

4)保存文件 例如 字库.txt

5)把ziku.exe(上传的程序)复制到4)中文件保存的地方

6)在cmd窗口里进入文件路径 按下图操作







最后就会生成一个ziku.bin文件,这个就是你需要的文件。



不会MFC只写了个命令行程序,大家凑合着用吧。

出0入0汤圆

发表于 2007-1-8 18:12:34 | 显示全部楼层
沙发1!!!!!

出0入0汤圆

发表于 2007-1-8 18:22:48 | 显示全部楼层
恩 好的  谢谢



为什么输入“新建文件夹”  输出时文字排列就不对了?






-----此内容被poppush于2007-01-08,18:43:02编辑过

出0入0汤圆

发表于 2007-1-8 18:25:05 | 显示全部楼层

出0入0汤圆

发表于 2007-1-8 20:47:56 | 显示全部楼层
想问一下unicode与gb2312的转换原理是怎么样的啊?

出0入0汤圆

发表于 2007-1-8 21:45:07 | 显示全部楼层
好,很实用啊。

出0入0汤圆

 楼主| 发表于 2007-1-8 21:48:04 | 显示全部楼层
Sorry 上面发的程序ziku.exe有个bug 我在做GBK字库的时候发现了问题,GB2312没问题。

请下载这个

点击此处下载armok01140819.zip





回2楼

它内部作了排序处理,我这么认为的。因为它并没有打乱我作的按内码顺序放的字库文件。

它这个做法也许是为了你只要显示一段文字(比如一篇文章)中间有重复的字,这样就不许要你去从中挑出不重复的字,你外排好序你在程序中就可以用2分法查找点阵在什么地方。

这样解释应该够全面了吧。(我的个人理解)



回4楼

两者之间的转化这能通过查表,两者没有对应关系。所以要建一张unicode-2312的对照表。

当然如过想节省程序运行时间,要建两张表,分别按照各自的线性关系放,这样就免去查找的所耗的时间了。但是这样字库就会变大。我觉得用空间去换取速度可行。我现在正在做这二者的转换。打算用GBK字库 大概兼容2万多个汉字。

出0入0汤圆

发表于 2007-1-9 08:29:09 | 显示全部楼层
bozai的回复总是这个急时



通过一张对照表

那这个对照表它的原理是怎么样的啊?

如果我知道一个汉字的unicode码,怎么样在对照表里面找到对应的gb2312码?

出0入0汤圆

发表于 2007-1-9 08:29:44 | 显示全部楼层
好,谢谢

出0入0汤圆

发表于 2007-1-9 08:29:44 | 显示全部楼层
好,谢谢

出0入0汤圆

发表于 2007-1-9 09:07:36 | 显示全部楼层
用龙版的字模3啊

出0入0汤圆

发表于 2007-1-9 09:21:14 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2007-1-9 09:40:19 | 显示全部楼层
好教程,我顶

出0入0汤圆

 楼主| 发表于 2007-1-9 09:51:51 | 显示全部楼层
回7楼:

只要弄一张这样的表,如2312-unicode 把2312对应的unicode码按照2312的顺序存放,因为2312的存放是有顺序的,只要根据汉字的内码计算出汉字在这张表的偏移量然后到这张表相应的位置找就可以了。

出0入0汤圆

 楼主| 发表于 2007-1-9 10:10:18 | 显示全部楼层
10楼:

我通过你在c51bbs上的回的帖了

http://www.c51bbs.com/product/zimo3.htm

好软件,但是要收费。不然批量生成字模会在字中央加一道横线。

出0入0汤圆

发表于 2007-1-9 11:11:17 | 显示全部楼层
那就是说这个转换表的大小应该跟GB2312的大小是一样的咯.

因为uicode和gb2312的都是2字节. 根据汉字的内码在转换表里面找到对应的UNICODE的编码?

那样好大啊  gb2312有262K吧.怎么我看到有一些说转换表才8K呢?

出0入0汤圆

 楼主| 发表于 2007-1-9 11:18:26 | 显示全部楼层
262K那是点阵文件,一个汉字32个字节的数据。

8K的转换表可能是一级字库的转换表,整个2312的转换表应该有16K 即约8K个汉字。

出0入0汤圆

发表于 2007-1-9 18:52:11 | 显示全部楼层
还有不太懂啊

把2312对应的unicode码按照2312的顺序存放.

就把一个汉字来说;"啊"对应的机内码就知道,然后转换成区位码,然后按区位码在点阵字库里面找对应的点阵数据.

但是现在知道"啊"的unicode码,通过什么方法在转换表中找到它的机内码或者区位码呢?

转换的原理.

出0入0汤圆

发表于 2007-1-9 19:02:37 | 显示全部楼层
晕,那个UNICODE与GB2312的表是这样的,按照GB2312中汉字的顺序存放了相应汉字的UNICODE编码,你知道了“啊“的UINCODE后,查这个表,发现它存放在第一个位置,那么说明这个汉字就是GB2312汉字库的第一个区的第一个汉字!知道它是GB2312的第一个字之后,它的区位码也就知道了。

出0入0汤圆

发表于 2007-1-9 20:00:21 | 显示全部楼层
那这样的话 我不是知道一个unicode编码就要遍历这个查找表才有可能找到我需要的gb2312的编码啊?(如果是gb2312的最后一个汉字)

出0入0汤圆

 楼主| 发表于 2007-1-9 20:20:40 | 显示全部楼层
所以要做两张表啊,一张2312的 一张unicode的。

做mp3只要知道unicode怎么转成2312,如果真正做文件系统当然两张都要了。

出0入0汤圆

发表于 2007-8-31 16:32:59 | 显示全部楼层
楼主的这种东西有用啊,比hzk16,hzk12这两种文件特定的取模方式有用多了,根据不同的液晶驱动算法去得出不同的汉字库,的确利害,不过就是不知道如何得到比较全面的中字TXT,谢!实在感谢!

出0入0汤圆

发表于 2007-12-17 09:53:08 | 显示全部楼层
top

出0入22汤圆

发表于 2007-12-17 09:59:43 | 显示全部楼层
谢谢。

出0入0汤圆

发表于 2007-12-17 10:17:54 | 显示全部楼层
不错的东东,做个记号。以后也许用得着

出0入0汤圆

发表于 2007-12-17 23:27:39 | 显示全部楼层
波仔好贴多啊

出0入0汤圆

发表于 2007-12-24 13:19:38 | 显示全部楼层
我在玩GPRS模块的时候也碰到了unicode码  可我对些码还不熟悉 楼主可以指点下在哪能查到相关的入门资料吗???  谢谢

出0入0汤圆

发表于 2008-1-21 23:34:15 | 显示全部楼层
其它外文字体:如日文、韩文能效仿做么?

出0入0汤圆

 楼主| 发表于 2008-1-22 01:50:09 | 显示全部楼层
to 【26楼】 caai2005
    看另一个帖子

to 【27楼】 1235679
    这个帖子里的是不行的,如果你学会我处理这个问题的思路应该会很容易。

出0入0汤圆

发表于 2008-2-21 16:42:25 | 显示全部楼层
楼主,看了上面几楼的讨论,我萌生了一个问题,既然是在知道汉字unicode码情况下查找此汉字对应的GB2313码,
那我们只要按汉字unicode码的大小顺序存放GB2313码,不就可以很简单的找到吗?

出0入0汤圆

 楼主| 发表于 2008-2-21 18:27:41 | 显示全部楼层
to 【29楼】 511cxl
    我就是这样做的呵,不过这戏码不是所有的都能找的全.

出0入0汤圆

发表于 2008-2-21 22:40:36 | 显示全部楼层
留个脚印

出0入0汤圆

发表于 2008-5-2 07:57:00 | 显示全部楼层
我也留个位置,有空仔细拜读。

出0入0汤圆

发表于 2008-5-2 11:00:21 | 显示全部楼层
留个脚印

出0入0汤圆

发表于 2008-5-3 09:51:45 | 显示全部楼层
记下

出0入0汤圆

发表于 2008-5-3 12:32:20 | 显示全部楼层
不顶不行

出0入0汤圆

发表于 2008-5-3 12:47:18 | 显示全部楼层

出0入0汤圆

发表于 2008-5-3 15:12:07 | 显示全部楼层
记号..........

出0入0汤圆

发表于 2008-5-3 17:39:53 | 显示全部楼层
有用,收下

出10入10汤圆

发表于 2008-5-4 16:03:17 | 显示全部楼层
留个脚印

出0入0汤圆

发表于 2008-8-30 11:18:30 | 显示全部楼层
请教一下,我在做字库的时候,按照bozai的方法打开cmd的命令,输入相应路径,结果就打开了相应的文件,并没有创建文件

出0入0汤圆

发表于 2008-8-30 16:07:53 | 显示全部楼层
请看楼主位图片的第8行。
  不是直接输入文件的路径(...\GB2312>宋体.txt)而是要输入命令(...\GB2312>ziku 宋体.txt)。

出0入0汤圆

发表于 2008-8-30 16:23:16 | 显示全部楼层
thanks!真打算做12x16的字库呢

出0入0汤圆

发表于 2008-8-30 16:31:40 | 显示全部楼层
试试

出0入0汤圆

发表于 2008-8-30 20:58:00 | 显示全部楼层
自己做字库爽呀

出0入0汤圆

发表于 2008-8-30 21:21:14 | 显示全部楼层
mark,谢谢

出0入0汤圆

发表于 2008-9-6 00:02:37 | 显示全部楼层
很好很方便

出0入0汤圆

发表于 2008-9-6 07:58:03 | 显示全部楼层
up

出0入0汤圆

发表于 2008-9-6 12:31:34 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-9-6 21:13:56 | 显示全部楼层
强,实用

出0入0汤圆

发表于 2008-9-6 22:25:50 | 显示全部楼层

出0入0汤圆

发表于 2008-10-29 16:30:47 | 显示全部楼层
mark!

出0入0汤圆

发表于 2008-10-29 13:53:46 | 显示全部楼层
mark!

出0入0汤圆

发表于 2008-10-29 13:33:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-10-29 09:54:34 | 显示全部楼层
学习

出0入0汤圆

发表于 2008-9-16 20:41:11 | 显示全部楼层

出0入0汤圆

发表于 2009-3-13 10:56:38 | 显示全部楼层
我的字库直接放LPC2387的片内FLASH里面, 字库和代码是分别烧进去的,
先用用BIN文件转换到 0x40000基址上的HEX文件,然后用ISP下载进去。

用下面的一条语句就可以找到字库位置,速度相当快
#define        GB2312_ZK_BASE        0x40000  // 字库大小192KB, 放在高256K区
unsigned char *p = (unsigned char *)(GB2312_ZK_BASE + ((((hiByte - 0xa1) * 94) + (loByte - 0xa1)) * 24));

hiByte 和 loByte 分别是字体内码的高低字节

出0入162汤圆

发表于 2009-3-13 11:07:33 | 显示全部楼层
unicode 和汉字编码没有线形的公式,也就是无法通过运算转换,只能查表

出0入0汤圆

发表于 2009-3-13 11:37:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-19 15:15:29 | 显示全部楼层
英文和特殊字符是怎么寻址?

出0入0汤圆

发表于 2009-3-29 23:48:39 | 显示全部楼层
正好要用到。谢谢!!

出0入0汤圆

发表于 2009-3-30 13:11:30 | 显示全部楼层
收藏先

出0入0汤圆

发表于 2009-4-8 14:50:14 | 显示全部楼层
好东西收藏了

出0入0汤圆

发表于 2009-4-8 15:20:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-11 16:52:43 | 显示全部楼层
GB2312字库制作方法

出0入0汤圆

发表于 2009-4-12 08:50:22 | 显示全部楼层
收藏了,有空好好看看

出0入0汤圆

发表于 2009-4-12 23:58:19 | 显示全部楼层
收藏一个先  :)

出0入0汤圆

发表于 2009-4-15 20:52:47 | 显示全部楼层
正在学习GSM无线点阵屏!
Unicode码子是解析出来了,可不知道在程序中怎么使用BIN中的内容!

出0入0汤圆

发表于 2009-7-25 15:44:59 | 显示全部楼层
mark,
谢谢波仔

出0入0汤圆

发表于 2009-7-26 22:38:10 | 显示全部楼层

出0入0汤圆

发表于 2009-8-9 13:35:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-11 17:31:58 | 显示全部楼层
marmk

出0入0汤圆

发表于 2009-8-11 18:02:25 | 显示全部楼层
mark,真的是好东西啊。太好了。千万不要沉了。
虽然关键是牧马字模强大,但是楼主的这个小工具太实用了。

出0入0汤圆

发表于 2009-8-25 21:18:37 | 显示全部楼层
谢谢BOZAI

出0入0汤圆

发表于 2009-9-7 18:25:01 | 显示全部楼层
为什么我总是无法生成那个BIN文件?
ziku.exe我也放在ziiku.txt一起了!!!用cmd打开总是只打开ziku.txt记事本!!!

出0入0汤圆

发表于 2009-9-7 21:14:55 | 显示全部楼层
谢谢BOZAI

出0入0汤圆

发表于 2009-9-15 21:29:32 | 显示全部楼层
非常好的软件啊!!

出0入0汤圆

发表于 2009-9-20 14:38:35 | 显示全部楼层
m

出0入0汤圆

发表于 2009-12-3 22:13:23 | 显示全部楼层
终于找到,合适的了。

出0入0汤圆

发表于 2009-12-3 23:42:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-6 19:35:29 | 显示全部楼层
好东西啊

出0入0汤圆

发表于 2010-3-6 21:28:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-7 14:02:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-7 14:06:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-10 16:55:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-10 20:09:59 | 显示全部楼层
好东西

出0入0汤圆

发表于 2010-3-18 09:43:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-18 11:36:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-18 11:50:26 | 显示全部楼层
收藏备用,谢谢

出0入0汤圆

发表于 2010-3-18 14:34:38 | 显示全部楼层
好。

在UE里编辑中文,然后改成hex编辑。
这个是什么方式呢?

出0入0汤圆

发表于 2010-3-18 15:05:22 | 显示全部楼层
我这里也有一个多国字库生成软件,可是怎么才能上传呢???

出0入0汤圆

发表于 2010-3-18 15:17:04 | 显示全部楼层
dig

出0入0汤圆

发表于 2010-3-18 19:07:24 | 显示全部楼层
回去试一下。

出0入0汤圆

发表于 2010-3-18 21:02:46 | 显示全部楼层

出0入0汤圆

发表于 2010-3-18 22:07:02 | 显示全部楼层
56楼的这段更有价值,我有库但是不会用。。。

#define GB2312_ZK_BASE 0x40000  // 字库大小192KB, 放在高256K区
unsigned char *p = (unsigned char *)(GB2312_ZK_BASE + ((((hiByte - 0xa1) * 94) + (loByte - 0xa1)) * 24));

hiByte 和 loByte 分别是字体内码的高低字节

这个怎么算的?

出0入0汤圆

发表于 2010-3-19 12:39:43 | 显示全部楼层
支持楼主。

出0入0汤圆

发表于 2010-3-22 16:03:43 | 显示全部楼层
谢谢波仔的软件 弄了一下午 呵呵

出0入0汤圆

发表于 2010-3-22 16:37:19 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2010-3-27 20:38:11 | 显示全部楼层
收藏了

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-9 06:41

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

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