web-dev-qa-db-ja.com

日本語文字のスムーズなフォントレンダリング

Windows 7を使用していて、フォントスムージングをClearTypeに設定しました。ただし、日本語の文字は、オペレーティングシステム全体で非常に大まかに表示されます。他のキャラクターのようにスムーズにレンダリングされるようにするにはどうすればよいですか?

現在の外観のサンプルを次に示します。

screenshot

12
missingfaktor

問題は、従来の日本語フォント(MSゴシック、MS PGothic、MS明朝…)に、アウトラインフォント(通常は22pt以下の文字)に加えて、小さいサイズのビットマップフォントも含まれていることです。これらのビットマップは、どのタイプのスムージングにも適用できないため、ひどく醜いエイリアシング、目を痛めるような外観になります。これにはいくつかの解決策があります。

フォントからビットマップを取り除く手順:

  • 削除する必要のあるフォントファイル(例:msgothic.ttc)を\Windows\Fontsからフォルダーにコピーします
  • MS TrueTypeSDKからBREAKTTCツールをダウンロード
  • フォントをコピーしたフォルダーでコマンドプロンプトを開き、BREAKTTC msgothic.ttcと入力します。その後、ttc内のすべてのttfファイルがFONT00.ttf〜FONTxx.ttfとして抽出されていることがわかります。

    breakttc

  • ここで、 FontToolsMicrosoft Typography からダウンロードします。その後、EBDT(埋め込みビットマップデータテーブル)を削除するために必要なSBIT32ツールを抽出します。コマンド構文は以下のとおりです。

    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として保存し、次のコマンドを実行します(3つの抽出されたttfファイルがあるため、MSゴシックの場合は3つ)

    rmEBDT font00.ttf msgot2.ttf 
    rmEBDT font01.ttf msgotp2.ttf 
    rmEBDT font02.ttf msuigot2.ttf
    
  • これでフォントファイルが削除されたので、MS Gothic NB-のように、フォントファイル名から独立した)フォント名の名前を変更できます。 ビットマップなし、古いフォントと一緒に使用するか、古い名前を使用して元のttcファイルを置き換えるだけです。これは少し注意が必要です。
    Windowsに再度インストールするには、どちらの方法でも、それらをttcファイルに再度パックする必要があります。 MAKETTCと同じフォルダにあるツールBREAKTTCを使用するか、それらを見つけることもできます ここ 。実行

    MAKETTC <TTC output file name> <TTF file 1> <TTF file 2> ...
    
  • Ttcファイルを取得した後、フォント名を変更した場合は、それらを\Windows\Fontsに直接コピーして新しいフォントとして登録し、UI、アプリ...のデフォルトフォントをそのフォントに変更します。古いフォント名を使用する場合、Windowsは起動時に常にMS Gothicをロードするため、LinuxライブUSBやWindowsPEなどの別のOSから起動する必要があります。
4
phuclv

これはフォントによって異なります。フォントが異なれば、フォントのスムージングの動作も異なるなど、特性も異なります。 Minchoグループのフォントは、デフォルトのフォントとして一般的に使用されており、このような問題が発生する可能性があるため、使用している可能性があります。ゴシックフォントは画面上でうまく機能する場合があります。

2

Meiryo 、Windows Vista/7のデフォルトの日本語フォント、およびその他の一部の日本語フォントには、小さいサイズのビットマップ(ピクセル)文字が含まれています。

あなたの例に戻ると、Firefoxを使用してこれを確認することができました。

  • ClearType(ヒント付き)文字:

    hinted

  • 小さいフォントサイズ。ビットマップ文字:

    bitmap


デフォルトでは、Firefoxは日本語フォントに対して次の設定を使用します。

font settings


したがって、解決策は、より大きなフォントサイズを使用するか、アプリケーションで使用されるデフォルトの日本語フォントを、すべてのサイズのヒント文字をサポートするフォントに置き換えることです(例:Arial Unicode)。

Windowsでフォントをグローバルに再マップ/置換するには、以下で レジストリ値 を変更または追加できます。

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