GBK字库寻址公式?

星空独行 2010-07-21 02:35:44
急需GBK的12*12点阵字库的寻址公式?
...全文
333 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vmalloc 2011-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qlming 的回复:]
12*12点阵字库中,12*12/8=18个字节一个汉字,18个字节中每个BIT代表一个点上是否有显示。

GB2312的12点阵库寻址如下:
假设某个汉字内码为ABCD(AB为区码)
则此汉字在点阵中的地址为:
ADDRESS=[(AB-0xa1)*94+(CD-0xa1)]*18
其中94和18为十进制。

如果你确定点阵是GBK的,我想应该上面的应该改为
ADDRESS=[……
[/Quote]


不知道你的偏移方式是否正确 但是一个12*12点阵占18个字节肯定是错误的

12*12 在gb2312字库中占24个字节
16*16 在gb2312中占用 16*16/8=32字节 但是 12*12字库不能简单的用这个除法来计算的

应该是12*16/8 = 24字节 这个我已经实现了
贝隆 2010-07-22
  • 打赏
  • 举报
回复
学习了。。。
make_sail 2010-07-21
  • 打赏
  • 举报
回复
真是学习了呀!
浅蓝马 2010-07-21
  • 打赏
  • 举报
回复
不好意思,上面写错了,
GBK的话,应该是:
ADDRESS=[(AB-0x81)*191+(CD-0x40)]*18
浅蓝马 2010-07-21
  • 打赏
  • 举报
回复
12*12点阵字库中,12*12/8=18个字节一个汉字,18个字节中每个BIT代表一个点上是否有显示。

GB2312的12点阵库寻址如下:
假设某个汉字内码为ABCD(AB为区码)
则此汉字在点阵中的地址为:
ADDRESS=[(AB-0xa1)*94+(CD-0xa1)]*18
其中94和18为十进制。

如果你确定点阵是GBK的,我想应该上面的应该改为
ADDRESS=[(AB-0x81)*94+(CD-0x40)]*18

只是现在好像GBK点阵字库很难找到吧,
一般都是GB2312的。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧