无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: haijie1223
打印 上一主题 下一主题

[原创] GRLDR内置菜单编辑工具V4.0(2016.3.4更新)-支持任何字体中文字库的生成

    [复制链接]
31#
发表于 2016-3-5 09:13:37 | 只看该作者
回复

使用道具 举报

32#
发表于 2016-3-5 09:14:54 | 只看该作者
本帖最后由 fuldho 于 2016-3-5 10:08 编辑

2字节字体与4字节不等高处理,菜单中中混排会很难看。

4.0非等高效果预览



等高效果预览

点评

我发给你的ttf转点阵的代码中有个结构,你看我后来发给你那个网页,有介绍那个结构的,里面包含坐标信息。根据那个坐标平移即可。至于微软雅黑,微软标宋等字体的点阵信息位宽超过相应大小字体的grub4dos的hex字体的  详情 回复 发表于 2016-3-5 10:17
回复

使用道具 举报

33#
发表于 2016-3-5 09:22:12 | 只看该作者
更新很频繁啦
回复

使用道具 举报

34#
发表于 2016-3-5 09:47:59 | 只看该作者
感谢你的分享。
回复

使用道具 举报

35#
发表于 2016-3-5 09:49:38 | 只看该作者
谢谢提供!
回复

使用道具 举报

36#
发表于 2016-3-5 09:57:09 | 只看该作者
GRLDR 中提示信息 "用 ↑ 和 ↓ 键选择菜单。" 是中文,是 UTF-8 格式编码。
从菜单中提取汉字,可能是 UTF-8 格式编码。也可能是 ANSI 格式编码。
如果不放心的话,可以在中文模式下,自己打字输入,反正也没有几个字。
回复

使用道具 举报

37#
发表于 2016-3-5 10:01:38 | 只看该作者
OKOONM<<<<<<<<<<NUU
回复

使用道具 举报

38#
发表于 2016-3-5 10:06:20 | 只看该作者
GRLDR中ASCII双字节字体是不是只能支持16位 (0xff  0xff)

ASCII字体通常是汉字的一半宽。如字体是24*24,那么半角ASCII字体是12*24.汉字全角ASCII字体是24*24.

点评

点阵信息用全角矩阵存贮半角字符,grldr不显示。  详情 回复 发表于 2016-3-5 10:36
宋体,新宋体等采用 ASCII字体为汉字的一半宽 但很多艺术字体(包括'微软雅黑')都使用了汉字等宽模式  详情 回复 发表于 2016-3-5 10:14
回复

使用道具 举报

39#
发表于 2016-3-5 10:14:34 | 只看该作者
好工具
回复

使用道具 举报

40#
发表于 2016-3-5 10:14:51 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:06
ASCII字体通常是汉字的一半宽。如字体是24*24,那么半角ASCII字体是12*24.汉字全角ASCII字体是24*24.

宋体,新宋体等采用 ASCII字体为汉字的一半宽
但很多艺术字体(包括'微软雅黑')都使用了汉字等宽模式

点评

微软雅黑,微软标宋的英文字符有些超宽,不符合grldr的hex显示机理,减小字号处理吧。  详情 回复 发表于 2016-3-5 10:21
回复

使用道具 举报

41#
 楼主| 发表于 2016-3-5 10:17:35 | 只看该作者
fuldho 发表于 2016-3-5 09:14
2字节字体与4字节不等高处理,菜单中中混排会很难看。

4.0非等高效果预览

我发给你的ttf转点阵的代码中有个结构,你看我后来发给你那个网页,有介绍那个结构的,里面包含坐标信息。根据那个坐标平移即可。至于微软雅黑,微软标宋等字体的点阵信息位宽超过相应大小字体的grub4dos的hex字体的宽度,所以有些字符没法显示,可以适当减小英文字符的字号解决这个问题。

点评

减少字号必须填充 (0x00)增加高度,其效果如我的贴图,变成了非等高,已经失去了原字形。  详情 回复 发表于 2016-3-5 10:43
回复

使用道具 举报

42#
 楼主| 发表于 2016-3-5 10:21:54 | 只看该作者
fuldho 发表于 2016-3-5 10:14
宋体,新宋体等采用 ASCII字体为汉字的一半宽
但很多艺术字体(包括'微软雅黑')都使用了汉字等宽模式

微软雅黑,微软标宋的英文字符有些超宽,不符合grldr的hex显示机理,减小字号处理吧。
回复

使用道具 举报

43#
发表于 2016-3-5 10:22:23 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

44#
发表于 2016-3-5 10:22:36 | 只看该作者
谢谢更新。
回复

使用道具 举报

45#
 楼主| 发表于 2016-3-5 10:36:01 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:06
ASCII字体通常是汉字的一半宽。如字体是24*24,那么半角ASCII字体是12*24.汉字全角ASCII字体是24*24.

点阵信息用全角矩阵存贮半角字符,grldr不显示。
回复

使用道具 举报

46#
发表于 2016-3-5 10:36:17 | 只看该作者
这一版本经测试,很好!

点评

并不是版本问题,现有字模已经不再遵循ASCII字体为汉字的一半宽规则。  详情 回复 发表于 2016-3-5 10:47

评分

参与人数 1无忧币 +5 收起 理由
haijie1223 + 5 多谢您的测试与指点!

查看全部评分

回复

使用道具 举报

47#
发表于 2016-3-5 10:38:44 | 只看该作者
更新的很快的。
回复

使用道具 举报

48#
发表于 2016-3-5 10:42:16 | 只看该作者
实用,要收藏!
回复

使用道具 举报

49#
发表于 2016-3-5 10:43:41 | 只看该作者
haijie1223 发表于 2016-3-5 10:17
我发给你的ttf转点阵的代码中有个结构,你看我后来发给你那个网页,有介绍那个结构的,里面包含坐标信息 ...

减少字号必须填充 (0x00)增加高度,其效果如我的贴图,变成了非等高,已经失去了原字形。

点评

你说的不等高是什么意思?英文比中文小是不是?对于特殊字符只能这么处理了,其实还可以增加一个检测字体宽度的函数,昨晚本来想添加进去的,后来又放弃了。累了,不想搞了。  详情 回复 发表于 2016-3-5 10:49
回复

使用道具 举报

50#
发表于 2016-3-5 10:47:45 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:36
这一版本经测试,很好!

并不是版本问题,现有字模已经不再遵循ASCII字体为汉字的一半宽规则。

点评

这几款字体都出自微软,矢量转点阵函数也出自微软,他肯定不会考虑到适应grub的情况,只能曲线处理。  详情 回复 发表于 2016-3-5 10:55
回复

使用道具 举报

51#
 楼主| 发表于 2016-3-5 10:49:12 | 只看该作者
fuldho 发表于 2016-3-5 10:43
减少字号必须填充 (0x00)增加高度,其效果如我的贴图,变成了非等高,已经失去了原字形。

你说的不等高是什么意思?英文比中文小是不是?对于特殊字符只能这么处理了,其实还可以增加一个检测字体宽度的函数,昨晚本来想添加进去的,后来又放弃了。累了,不想搞了。
回复

使用道具 举报

52#
发表于 2016-3-5 10:52:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

53#
发表于 2016-3-5 10:53:56 | 只看该作者
再更新一下。
回复

使用道具 举报

54#
 楼主| 发表于 2016-3-5 10:55:10 | 只看该作者
fuldho 发表于 2016-3-5 10:47
并不是版本问题,现有字模已经不再遵循ASCII字体为汉字的一半宽规则。

这几款字体都出自微软,矢量转点阵函数也出自微软,他肯定不会考虑到适应grub的情况,只能曲线处理。
回复

使用道具 举报

55#
发表于 2016-3-5 10:55:15 | 只看该作者
"A"字符,存储为ASCII字体0x41,那只能是半角,一半宽。
"A"字符,存储为中文全角字体,那就是全宽。可以显示艺术字体。它的编码就不是0x41了。
我不清楚艺术字体(包括'微软雅黑'),它的“A”使用了汉字等宽模式?意思是它是全角,那编码是0x41?还是其他?

点评

微软肯定是不会改变了,不知道grub是否能够更新一下,能够兼顾到这种特殊字体,超过半角的直接按全角处理得了。  详情 回复 发表于 2016-3-5 11:01
没有和汉字一样,只是点阵信息的宽度比其它字体的宽度要宽一些,但是没有和汉字那么宽。有点特殊,比半角要宽点,比全角要窄一点,所以既不能按照全角处理,又不能按照半角处理,我最终的处理办法是把英文字符减小些  详情 回复 发表于 2016-3-5 10:58
没有和汉字一样,只是点阵信息的宽度比其它字体的宽度要宽一些,但是没有和汉字那么宽。有点特殊,比半角要宽点,比全角要窄一点,所以既不能按照全角处理,又不能按照半角处理,我最终的处理办法是把英文字符减小些  详情 回复 发表于 2016-3-5 10:58
回复

使用道具 举报

56#
 楼主| 发表于 2016-3-5 10:58:41 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:55
"A"字符,存储为ASCII字体0x41,那只能是半角,一半宽。
"A"字符,存储为中文全角字体,那就是全宽。可以显 ...

没有和汉字一样,只是点阵信息的宽度比其它字体的宽度要宽一些,但是没有和汉字那么宽。有点特殊,比半角要宽点,比全角要窄一点,所以既不能按照全角处理,又不能按照半角处理,我最终的处理办法是把英文字符减小些字号。其实可以添加个函数提前检测一下字体是否属于这种特殊字体。
回复

使用道具 举报

57#
 楼主| 发表于 2016-3-5 10:58:42 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:55
"A"字符,存储为ASCII字体0x41,那只能是半角,一半宽。
"A"字符,存储为中文全角字体,那就是全宽。可以显 ...

没有和汉字一样,只是点阵信息的宽度比其它字体的宽度要宽一些,但是没有和汉字那么宽。有点特殊,比半角要宽点,比全角要窄一点,所以既不能按照全角处理,又不能按照半角处理,我最终的处理办法是把英文字符减小些字号。其实可以添加个函数提前检测一下字体是否属于这种特殊字体。
回复

使用道具 举报

58#
发表于 2016-3-5 10:59:56 | 只看该作者
辛苦了。        
回复

使用道具 举报

59#
 楼主| 发表于 2016-3-5 11:01:12 | 只看该作者
2011yaya2007777 发表于 2016-3-5 10:55
"A"字符,存储为ASCII字体0x41,那只能是半角,一半宽。
"A"字符,存储为中文全角字体,那就是全宽。可以显 ...

微软肯定是不会改变了,不知道grub是否能够更新一下,能够兼顾到这种特殊字体,超过半角的直接按全角处理得了。
回复

使用道具 举报

60#
发表于 2016-3-5 11:02:10 | 只看该作者
感谢你的分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-29 20:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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