过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
关闭主题
第1页,共2页:  1  2  
主题工具  
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
准备用十六进制编辑器打开 MSYH.TTC,定位,修改“一”的 hinting 数据,解决“一一”的显示问题。

---------- 帖子于 22:15:58 更新 ---------- 之前内容发布于 20:55:13 ----------

用 ttfdump 决定这个文件是否有两个 glyf 表,打开命令提示符,运行以下命令:
这个文件一共有两个字体。
按 Ctrl+C 键停止输出。索引1的字体的 glyf 表的校验值是 AC0 3DA 52。

停止输出,索引2的字体的 glyf 表的校验值是 AC0 3DA 52,校验值与索引1的字体一样,off 也一样,len 也一样。

---------- 帖子于 11:44:36 更新 ---------- 之前内容发布于 22:15:58 ----------

定位“一”(Unicode 值为 0x4e00)的时候,发现以下命令(ttfdump v1.8)可能会连续写入 glyf 表的大于1 GB 的数据,暂时找不到解决方案。
此帖于 2016-08-05 20:46:30 被 tom3245 编辑. 原因: 修改
回复时引用此帖
以下极客对 tom3245 此帖表示感谢:
樊樊123 (2016-06-17)
樊樊123
樊樊123 的头像
极客II
级别:7 | 在线时长:313小时 | 升级还需:47小时级别:7 | 在线时长:313小时 | 升级还需:47小时
注册日期: 2005-06
帖子: 265
致谢: 8
2016-06-18, 15:26:19 #2 | TOP
楼主支持你------加油===
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-06-20, 22:00:06 #3 | TOP
搜索 Windows 2000 的函数时,发现一个问题,CreateFont 之类的函数接受字体名字(例如 Microsoft YaHei、Arial)作为参数,但是,除去 AddFontResource、(网页说可以通过修改注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)来添加或者删除字体, 也这样说)、RemoveFontResource、RemoveFontResourceEx,没找到一个函数接受字体文件路径(例如 C:\simple\MSYH610\MSYH.TTC)作为参数。
这种情况下,()、ScriptGetCMap 不能被调用。而 Windows 7 的 ()函数没试过
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-06-25, 14:19:56 #4 | TOP
保存输出为文本文件:
打开 C:\simple\MSYH610\MSYH.TTC_cmap.txt,查找 4e00,看到 Index 9650,选中9650并复制,打开,然后打开 MSYH.TTC.bin(复制品),运行 MSYH610_glyf.1sc,结果见图 Untitled.png。
MSYH610_glyf.1sc 內容如下:
glyf.bt 內容如下:
上传的图像
文件类型: png Untitled.png (21.5 KB, 25 次查看)
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-02, 18:35:14 #5 | TOP
VTT 好像不能打开 MSYH.TTC 文件,使用 Splitter.java 创建 MSYH.TTF。
Splitter.java:
使用 VTT 试图修改“一”的 instruction,在 VTT talk 结尾的两个 MDAP 上面加入 RUTG[]、RDTG[] 或 RTHG[],发现“一一”的问题未消除,因为我在 VTT 勾选了 ClearType(Display > General Options > ClearType),横向像素数增加2倍,RUTG[]、RDTG[] 没作用。

在010 Editor 上横向压缩 outline,这样左边和右边的空隙大于或者等于 2048/11,重新加载文件,“一一”的问题很明显地消除了。
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-02, 20:01:20 #6 | TOP
修改 outline 前后的图:
上传的图像
文件类型: png Untitled-2.png (19.9 KB, 77 次查看)
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-02, 20:11:31 #7 | TOP
传错了,没有14px 的图
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-04, 22:29:15 #8 | TOP
修改 outline 前后的图:
上传的图像
文件类型: png Untitled-4.png (18.9 KB, 55 次查看)
回复时引用此帖
mitkyg
极客II
级别:4 | 在线时长:109小时 | 升级还需:41小时级别:4 | 在线时长:109小时 | 升级还需:41小时级别:4 | 在线时长:109小时 | 升级还需:41小时级别:4 | 在线时长:109小时 | 升级还需:41小时
注册日期: 2013-02
帖子: 55
致谢: 2
2016-07-11, 16:32:05 #9 | TOP
收藏之~~~
谢谢LZ啦!!!
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-21, 17:12:35 #10 | TOP
使用 ChecksumUpdate.java 更新校验码和修改时间:
然后重命名 MSYH.TTC.bin 为 MSYH2.TTC,打开 Font Validator,在 MSYH2.TTC 上按住鼠标左键不放,拖动到 Validator,然后点击 Table Tests > Clear all,勾选 head,点击 Rasterization,取消勾选 Test rasterization of TrueType outlines,然后点击 Validation > Start,注意到 General Font Information 下面没有红色背景的一行文字
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-21, 20:39:48 #11 | TOP
打开命令提示符,输入:
如果不能复制,用管理员权限打开命令提示符再试试。

然后打开注册表编辑器,打开 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts,右键点击 Microsoft YaHei & Microsoft YaHei UI (TrueType),点击 Modify...,把 MSYH.TTC 改成 MSYH_2.TTC,关闭本网页然后恢复,“一一”的问题被解决了。

试图上传微软雅黑610修改版 Build 17
此帖于 2016-07-22 10:54:41 被 tom3245 编辑.
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-24, 14:50:06 #12 | TOP
已上传到百度网盘 (已失效)

---------- 帖子于 22:00:00 更新 ---------- 之前内容发布于 21:12:26 ----------

(已失效)

---------- 帖子于 11:06:19 更新 ---------- 之前内容发布于 22:00:00 ----------

加入9. 卸载.txt

---------- 帖子于 17:23:30 更新 ---------- 之前内容发布于 11:06:19 ----------

试图解决版本号是6.11的 MSYHBD.TTC 在14px 下“字体”的问题:(论坛功能少,问题不能看到)

使用 Splitter.java 创建 MSYHBD.TTF,然后用 打开这个文件,然后 Render size > 取消勾选 Subpixel,两个 DPI 改成72,Point size 改成14,勾选 Subpixel,然后点击 Glyph...,选择 glyph 600,点击 Debug>>,窗口有点矮,再次点击 Debug>>,向右拉伸窗口,点击 Debug>>

然后点击 |<<,点击 Show numbers(各点的编号),点击 Stack...,移动弹出的窗口,点击 Storage...(存储),移动弹出的窗口,点击 CVT...(控制值的表),移动弹出的窗口,点击 Graphics State...,移动弹出的窗口。

然后点击 >,一行一行地查看字形的变化。看到65 Glyph program: 180 DeltaP [base+0],这一步有问题,打开 VTT,打开这个文件,点击 Tools > Source from binary...,点击 Yes,等待,点击 View > 勾选 VTT talk,打开 (The TrueType Instruction Set, Part 2),打开 Page 292,在 TrueTypeViewer 下,Stack 窗口第一行是32: 5 (0x5)...(下面有10行数据),第二行是31: 16 (0x10)...(编号16的点),第三行是30: 203 (0xcb)...同时 Graphics State 窗口的 Delta base 为9,9 + 0xc(12)= 21,意思是关于21px 的 glyph。

第9行是24: 91 (0x5b)...(对于9+5 = 14 px 的 glyph,移动编号16(第八行)的点),0x5b 右边4个 bits 是 0xb(11),查看 ttinst2.doc 的 Page 294里面的表,11对应4, 同时 Graphics State 窗口的 Delta shift 为2,4 / 2^2 = 1 px,意思是把编号16的点向上移动一像素。

切换到 VTT,打开 VTT talk,找到16, 91,尝试改成16, 89,然后点击 Tools > Complie > Active window,字形有所改善,点击 Display > General options > 取消选中 Grid fit,观察字形,选中 Grid fit,继续修改,结果是16, 86。

---------- 帖子于 17:31:14 更新 ---------- 之前内容发布于 17:23:30 ----------

刚才应该在 VTT 中,选中 Display > Size > 14 point

---------- 帖子于 21:24:18 更新 ---------- 之前内容发布于 17:31:14 ----------

在命令提示符运行:
注意到 indexToLocFormat 一样。然后用 010 Editor 对比一下两个文件,开头结构差不多,直接用 MSYH610_glyf.1sc 定位“字”(glyph id 1536),看到第一个红色背景的数值是2(正确),把 2B 10 5B 改成 2A 10 56,保存,修改 ChecksumUpdate.java 中 file 变量,用该 java 文件更新校验和、修改时间,注意到 FolderChangesView 中 MSYHBD.TTC.bin 的修改次数为5(revision 5),然后把 MSYHBD.TTC.bin 复制为 MSYHBD_5.TTC,用 Font Validator 检查一下,然后用命令提示符复制到 C:\Windows\Fonts 文件夹,修改注册表,关闭 ,还有一个谷歌网页,重新打开,“字体”的问题被解决

---------- 帖子于 21:32:27 更新 ---------- 之前内容发布于 21:24:18 ----------

MSYHBD611_CIBuild_2016_Rev5.zip(已失效)

---------- 帖子于 22:44:41 更新 ---------- 之前内容发布于 21:32:27 ----------

MSYHBD 6.11版

---------- 帖子于 14:50:06 更新 ---------- 之前内容发布于 22:44:41 ----------

GlyphTableCopy.java 复制微软雅黑6.10的更改到微软雅黑6.02,目前刚开始写:
函数 java.nio.file.Files.newBufferedWriter(Path path, OpenOption... options),可能会在几年后被 deprecated。如果被 deprecated,之前看过的(比如1百万字)本函数文档就相对没用
此帖于 2016-07-23 22:47:00 被 tom3245 编辑. 原因: (已失效)
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-27, 17:15:08 #13 | TOP
微软雅黑6.10版 Rev42:修改,?;:!5个字。截图如下

Untitled-8.png
回复时引用此帖
以下极客对 tom3245 此帖表示感谢:
dliwj (2016-08-28)
Alpha_Robert 帅哥
Alpha_Robert 的头像
极客II
级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时
注册日期: 2014-12
帖子: 263
致谢: 298
2016-07-27, 19:55:51 #14 | TOP
提个建议,雅黑的全角括号()[]{}向下偏移了一些,请问能否更正?谢谢。
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-28, 12:01:35 #15 | TOP
我试试。。

---------- 帖子于 12:01:35 更新 ---------- 之前内容发布于 11:37:57 ----------

要计算2.9万个字的(yMin+yMax) / 2 平均值
回复时引用此帖
cjmyuhui6
cjmyuhui6 的头像
极客III
级别:14 | 在线时长:1160小时 | 升级还需:40小时级别:14 | 在线时长:1160小时 | 升级还需:40小时级别:14 | 在线时长:1160小时 | 升级还需:40小时级别:14 | 在线时长:1160小时 | 升级还需:40小时
注册日期: 2010-10
帖子: 586
致谢: 224
2016-07-28, 13:50:13 #16 | TOP
我觉得如果要改雅黑,其实用最新版比较好,WIN10雅黑版本是6.22。
上传的图像
文件类型: png 2016-07-28_134904.png (31.9 KB, 25 次查看)
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-28, 14:57:17 #17 | TOP
我正在写一个java文件,复制6.10版的改动,到6.02版、6.14版与6.22版

---------- 帖子于 14:57:17 更新 ---------- 之前内容发布于 14:35:21 ----------

除了 composite glyph、零长度的 glyph 外,(yMin+yMax) / 2 的平均值是711
回复时引用此帖
以下极客对 tom3245 此帖表示感谢:
dliwj (2016-08-28)
Alpha_Robert 帅哥
Alpha_Robert 的头像
极客II
级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时
注册日期: 2014-12
帖子: 263
致谢: 298
2016-07-28, 16:14:03 #18 | TOP
为什么要那么麻烦呢?只要挑选一个参考字,例如国、鼺等几乎把字面框沾满的字,或者干脆用对准汉字的【】「」『』《》等作为参考即可。
回复时引用此帖
tom3245
极客I
级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时级别:4 | 在线时长:113小时 | 升级还需:37小时
注册日期: 2012-04
帖子: 48
致谢: 13
2016-07-28, 18:46:38 #19 | TOP
不对,我应该拿兰开斯特汉语语料库(LCMC)来计算中心。国、鼺的 (yMin+yMax) / 2 的值分别是665、693,如果665偏低,修改后的字相对原来的文字偏低。
回复时引用此帖
Alpha_Robert 帅哥
Alpha_Robert 的头像
极客II
级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时级别:8 | 在线时长:425小时 | 升级还需:25小时
注册日期: 2014-12
帖子: 263
致谢: 298
2016-07-28, 19:55:16 #20 | TOP
你可能理解错我的意思了。
我是说,把这些括号放在示例文字,上下调整高度即可,并不是计算这些字 ymin ymax 的平均值。

「重心」这种东西,不是计算出来的,而是凭借感官感觉出来的。

举个很简单的例子,「中」这个字,就算计算出来 ymin ymax 的平均值,得到的数值也不是这个字的重心。

汉字字符的重心本来就不在正中心,而在字身框的几何中心略上方,对齐这个点才能算完美的搭配。然而专门为横排而设计的中文字体为了使字更稳,又反而会稍降低一点重心,这些都是需要又人的主管感觉来完成的。
回复时引用此帖
关闭主题 « 上一主题 - 修改替换 - 下一主题 »
第1页,共2页:  1  2  
过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
主题工具
发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转:
Copyright ©2003-2014, THEMEX.NET [湘ICP备14009485号]
Powered by vBulletin® v3.8.3 ©Jelsoft Enterprises Ltd.
所有时间均为北京时间。现在的时间是 10:19:58