从字体中剥离位图的步骤:

从字体中剥离位图的步骤:

我使用的是 Windows 7,并将字体平滑设置为 ClearType。但是,日语字符在整个操作系统中显示得非常粗糙。我该怎么做才能使它们像其他字符一样平滑地呈现?

以下是它们当前的样子:

截屏

答案1

问题是传统的日文字体(MS Gothic、MS PGothic、MS Mincho……)也包括位图除了轮廓字体外,还有小尺寸的字体(通常为 22pt 及以下的字符)。这些位图不能应用任何类型的平滑,因此会导致非常丑陋的锯齿,让人眼睛难受。有几种解决方案:

从字体中剥离位图的步骤:

  • 复制你需要删除的字体文件,例如msgothic.ttc,从\Windows\Fonts文件夹

  • 下载BREAKTTCMS TrueType SDK 中的工具

  • 在复制字体的文件夹中打开命令提示符并输入BREAKTTC msgothic.ttc。之后,您可以看到 ttc 中的所有 ttf 文件都被提取为FONT00.ttf ~ FONTxx.ttf

    打破

  • 现在你可以下载字体工具微软排版。之后提取SBIT32删除 EBDT(嵌入式位图数据表)所需的工具。命令语法如下

    SBIT32 -d <original font file> <metric file> [output file]
    

    您需要针对每个位图大小(通常为 7 到 22)运行此操作以删除所有位图,如果手动输入则相当笨拙。自动化脚本将大有帮助。

    @echo off
    copy %1 %2 >nul
    for /l %%i in ( 7,1,22 ) do (
        echo PPEM %%i > mtemp.txt
        echo END >> mtemp.txt
        sbit32 -d %2 mtemp.txt ftemp.ttf  
        del %2
        ren ftemp.ttf %2
    )
    del mtemp.txt
    

    将以上内容保存为rmEBDT.bat并运行以下命令(对于 MS Gothic 为 3,因为我们有 3 个提取的 ttf 文件)

    rmEBDT font00.ttf msgot2.ttf 
    rmEBDT font01.ttf msgotp2.ttf 
    rmEBDT font02.ttf msuigot2.ttf
    
  • 现在我们已经剥离了字体文件,我们可以重命名这些字体名称(这与字体文件名), 类似于 MS Gothic NB -无位图,与旧字体一起使用,或者直接使用旧名称并替换原始 ttc 文件,这有点棘手。无论哪种方式,我们都需要将它们重新打包为 ttc 文件,以便重新安装到 Windows。使用与 同一文件夹中的
    工具,或者您也可以找到它们MAKETTCBREAKTTC这里。 跑步

    MAKETTC <TTC output file name> <TTF file 1> <TTF file 2> ...
    
  • 获取 ttc 文件后,如果您更改了字体名称,则只需直接将其复制到以\Windows\Fonts将其注册为新字体,然后将 UI、应用程序等中的默认字体更改为该字体。如果您想使用旧字体名称,则必须从另一个操作系统(如 Linux live USB 或 Windows PE)启动,因为 Windows 总是在启动时加载 MS Gothic。

答案2

这取决于字体。不同的字体具有不同的特性,包括字体平滑的不同行为。您可能正在使用 Mincho 组中的字体,因为它们通常用作默认字体,并且它们可能存在这样的问题;Gothic 字体在屏幕上可能效果更好。

答案3

明良,Windows Vista/7 的默认日文字体,以及一些其他日文字体包含小尺寸的位图(像素)字符。

回到你的例子,我能够使用 Firefox 来确认这一点:

  • ClearType(提示)字符:

    暗示

  • 较小的字体;位图字符:

    位图


默认情况下,Firefox 对日文字体使用以下设置:

字体设置


因此,解决方案在于使用更大的字体大小或将应用程序中使用的默认日文字体替换为支持所有大小的提示字符的字体(例如Arial 统一码)。

要在 Windows 中全局重新映射/替换字体,您可以修改或添加注册表值在下面:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes

相关内容