33

この質問が特に OpenType フォントについて尋ねられていないとは信じられませんが、これらのフォントからグリフを削除する方法を知っている人はいますか?

非常に大きなファイル サイズ (約 10 MB) の .OTF があり、それを小さくする必要があります。理由は 2 つあります。

1) Web 埋め込み用に準備しようとしているので、ファイルが小さいほど、クライアントにとって簡単になります。

2) Font Squirrel (フォント ファイルの簡単な準備に使用) には 2MB のアップロード制限があります。代替手段があることは知っていますが、これまで成功したものはありません。無駄な時間を節約するために、私が試したものの失敗したのはhttp://fontface.codeandmore.com/http://www.font2web.com/です。CodeAndMore.com は機能しているように見えますが、吐き出すフォントは、私が提供したものとはまったく異なります。

私はフォントの専門家ではないので、簡単に答えてください。

4

8 に答える 8

25

fontforge ライブラリを使用して Python2 スクリプトを作成し、次のことを行います。

  • ソースフォントを受け入れる
  • 使用するすべての文字を含むファイルを受け入れます。翻訳ファイル、文字列アセット ファイル、HTML ファイルなどです。
  • ファイルにない文字を取り除いたフォントを出力する

コードは次のとおりです。

#!/usr/bin/python2
import sys
import fontforge

if len(sys.argv) == 4:
    font = fontforge.open(sys.argv[1])

    with open(sys.argv[2], "r") as f:
        for i in f.read().decode("UTF-8"):
            font.selection[ord(i)] = True

    font.selection.invert()

    for i in font.selection.byGlyphs:
        font.removeGlyph(i)

    font.generate(sys.argv[3])
else:
    print "WARNING: Check the license of the source font\nbefore distributing the output font generated by this script.\nI'm not responsible for any legal issue caused by\ninappropriate use of this script!\n"
    print "Usage: {} [source font] [file with glyphs NOT to be removed] [output]".format(sys.argv[0])
    print "Example: {} /path/to/ukai.ttc chineseTranslation.txt ukaiStripped.ttf".format(sys.argv[0])

特定のフォントでこのスクリプトを使用することは合法ではないことに注意してください。ソース フォントのライセンスを確認してください。このスクリプトによって生成されたフォントを使用することによって引き起こされる法的問題について、私は責任を負いません。

于 2015-12-07T11:50:50.087 に答える
4

次の最新のコメント:Shiftキーとコマンドキーをすべて1回で使用して、左側のメニュー(言語)で一度に複数のセットを選択できます。画像は基本ラテン語(AZ az)を保持していることに注意してください。セットを選択したら、グリフウィンドウをクリックして[すべて選択](cmd-A)を選択します。このようにたくさんあると時間がかかります。次に、cmd-Deleteを実行すると、すべてが削除されます。'Categories'で操作を繰り返すだけで完了です。次に、.otfをエクスポートします

カテゴリの選択 言語の選択

于 2013-02-08T18:56:37.397 に答える