无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 163892|回复: 687
打印 上一主题 下一主题

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

    [复制链接]
1#
发表于 2016-3-5 09:10:01 | 显示全部楼层
2011yaya2007777 发表于 2016-3-4 22:10
↓↑→←在中文字库里有。还应当有空格‘ ’。



GRLDR中ASCII双字节字体是不是只能支持16位 (0xff  0xff)

在微软雅黑16x16以上字模(W、M等)使用了与中文等宽24位(0xff 0xff 0xff)或以上

如果把24位W处理成16位就失去了微软雅黑风格,请问是否可以让GRLDR自适应字体宽度。

回复

使用道具 举报

2#
发表于 2016-3-5 09:14:54 | 显示全部楼层
本帖最后由 fuldho 于 2016-3-5 10:08 编辑

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

4.0非等高效果预览



等高效果预览

点评

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

使用道具 举报

3#
发表于 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
回复

使用道具 举报

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

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

点评

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

使用道具 举报

5#
发表于 2016-3-5 10:47:45 | 显示全部楼层
2011yaya2007777 发表于 2016-3-5 10:36
这一版本经测试,很好!

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

点评

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

使用道具 举报

6#
发表于 2016-3-5 11:37:03 | 显示全部楼层
2011yaya2007777 发表于 2016-3-5 11:02
明白了。显示半角,丢了字符信息,显示全角,英文字符间距太大。
似乎新版本没有包含0x20空格?

不是英文字符间距太大, 而是显示不全

例如:汉字24x24  一行为(0xff 0xff 0xff) 而 英文是12x24 一行为(0xff 0xff ),最大只有描述 16 点,

'微软雅黑' 18x18、20x20、22x22、24x24 中 有些字符已经超过16 点,用(0xff 0xff ),就会显示不全

微软雅黑'24x24 超过16点如下图:



'宋体'24x24 16点以内如下图:

回复

使用道具 举报

7#
发表于 2016-3-5 12:15:30 | 显示全部楼层
2011yaya2007777 发表于 2016-3-5 11:52
好的。不再提全角之事。
对于艺术字体,要么压缩至一半。如24*24,压缩到12*24,绝不是16*2 ...

'微软雅黑'是菜单常用字体,有同样问题,
回复

使用道具 举报

8#
发表于 2016-3-5 12:57:23 | 显示全部楼层
本帖最后由 fuldho 于 2016-3-5 13:30 编辑
2011yaya2007777 发表于 2016-3-5 11:52
好的。不再提全角之事。
对于艺术字体,要么压缩至一半。如24*24,压缩到12*24,绝不是16*2 ...


点阵字模依点数描述一个字形 ,如:24x24,横向24点x纵向24点,16进制记录24点需要6位,

即:0xff 0xff 0xff  转换2进制 1111111111111111111111111    24点,

而 英文是12x24 一行为横向12点x纵向24点(0xff 0xff ),转换2进制 1111111111111111    最大只有描述 16 点

超过16点(如18点),取前16点,就会缺右边,取后16点,就会缺左边,

○○○○○○○○○○○○○○○○○○  
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
●●○○○○○○●●○○○○○○●●
●●○○○○○○●●○○○○○○●●
○●●○○○○●●●●○○○○●●○
○●●○○○○●●●●○○○○●●○
○●●○○○○●○●●○○○○●●○
○○●○○○○●○○●○○○○●○○
○○●●○○●●○○●●○○●●○○
○○●●○○●●○○●●○○●●○○
○○●●○○●○○○○●○○●●○○
○○○●●○●○○○○●○○●○○○
○○○●●●●○○○○●●●●○○○
○○○●●●●○○○○●●●●○○○
○○○○●●○○○○○○●●○○○○
○○○○●●○○○○○○●●○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○

○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○●○○○○●○○○○○○○○○○○○○○○○○○○○○○
○○○●○○○○●○○○○○○○○○○○○○○○○○○○○○○○
○○●○○○○●●●●●●●●●●○○○○○○○○○○○○○○○
○○●○○○○●○○○○○○○○●○○○○○○○○○○○○○○○
○●●○○○●○○○○●○○○●○○○○○○○○○○○○○○○○
●○●○○●○○○○○●○○○●○○○○○○○○○○○○○○○○
○○●○○○○○●○○●○●●○○○○○○○○○○○○○○○○○
○○●○○○●●○○○●○○●●●○○○○○○○○○○○○○○○
○○●○○●●○○○○●○○○○●●○○○○○○○○○○○○○○
○○●○○○○○●●●●○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○●○●○○●●○○○○○●○○○○○○○○○○○○○○○○○
○●○○●○○○○●●○○●○●○○○○○○○○○○○○○○○○
○●○○●○○○○○○○○●○○●○○○○○○○○○○○○○○○
●○○○●○○○○○○○●●○○○●○○○○○○○○○○○○○○
○○○○○●●●●●●●●○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○

中文“二”16x16

0000                                                                        
0000                                                                        
3FF8        1111111111111111111111111111000                                                                 
0000                                                                        
0000                                                                        
0000                                                                        
000C                                                      1100     
FFFF        1111111111111111111111111111111   
0000                                                                        
0000                                                                        
0000                                                                        
0000                                                                        
0000                                                                        
0000                                                                        
0000                                                                        
0000

4E8C:000000003FF8000000000000000CFFFF00000000000000000000000000000000
24x24

000000
000000
000000
000000
7FFFF0     11111111111111111110000
7FFFF0     11111111111111111110000
000000
000000
000000
000000
000000
000000
000000
000000
000000
000000
000000
000000
000000
FFFFFC   111111111111111111111100
FFFFFC   111111111111111111111100
000000  
000000
000000
4E8C:0000000000000000000000007FFFF07FFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFCFFFFFC000000000000000000

点评

就算全显示出来在grldr也不能全部显示,和点阵字体的宽度没有关系,主要是看框架点阵字体的矩形有没有被显示出来。这个主要就要grldr修正了,微软肯定是不会改了。  详情 回复 发表于 2016-3-5 14:24
回复

使用道具 举报

9#
发表于 2016-3-5 15:11:50 | 显示全部楼层
haijie1223 发表于 2016-3-5 14:24
就算全显示出来在grldr也不能全部显示,和点阵字体的宽度没有关系,主要是看框架点阵字体的矩形有没有被 ...

当然和点阵字体的宽度有关系,一个18点阵字"W"按汉字24位处理,

用 4E00:      后面"W"24位16进制 144个字符
菜单写“一”显示不是“一”而是“W”
用0057:   24位16进制 144个
就不会被显示,因为他超出显示范围,对于24位“w”只能16进制 96 个字符
回复

使用道具 举报

10#
发表于 2016-3-7 08:44:02 | 显示全部楼层

上下左右箭头
0018
0019
001A
001C
回复

使用道具 举报

11#
发表于 2016-3-7 11:27:50 | 显示全部楼层
2011yaya2007777 发表于 2016-3-7 08:54
这个在中文字库里好像没有。在英文字库里,所表示的图形,不尽相同。

位编码与字模形状无关,如“字”在不同的字体下形状不同的,否则就没那么多字形了(艺术字体),

16x16

0018:AAAA00018000000180003325C4B447ADC4A434A5800000018000000180005555
0019:AAAA00018000000180007D11C1B07D51C1107D11800000018000000180005555
001A:AAAA00018000000180003A5DC252325D8A52719D800000018000000180005555
001B:AAAA000180000001800079CFC2107991C0507B8F800000018000000180005555
001C:AAAA000180000001800079C1C2007981C0404381800000018000000180005555
001D:AAAA000180000001800039C1C2005981C8403B81800000018000000180005555
001E:AAAA000180000001800071C1CA007181D0404B81800000018000000180005555
001F:AAAA000180000001800049C1CA004981C8403381800000018000000180005555
回复

使用道具 举报

12#
发表于 2016-3-8 13:22:19 | 显示全部楼层
不点 发表于 2016-3-8 12:58
底部说明里面的箭头键,好像是半角的字符,也就相当于英文字符。代码值在 00-7F 范围的字符,就是常规 ASCI ...

汉化版是全角
回复

使用道具 举报

13#
发表于 2016-3-8 15:35:55 | 显示全部楼层
2011yaya2007777 发表于 2016-3-7 14:59
我现在感到疑惑,放开字符宽度限制,是否有意义。也不过就是0x20-0xff几个字符。就算是艺术字体好,未必比 ...

没有必要更改英文半宽设置,转换时完全可以修正,如果采用等宽如:数字 1  英文 I   两边空的太多,也非常难看。
回复

使用道具 举报

14#
发表于 2016-3-8 15:38:18 | 显示全部楼层
2011yaya2007777 发表于 2016-3-7 15:03
我使用 “点阵字库生成器 V3.8” 观察,0x19 不是下箭头,而是 ├
它里面有个字体大小调整,从预览中,可 ...

汉化版箭头是全角,测试如下:

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-29 07:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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