タイトルが示すように、.ttf ファイルと .otf ファイルを読み取って、ユーザーがカーニング、文字幅、文字間隔を調整できるソフトウェアを構築したいと考えています。freetype プロジェクトについては知っていますが、C で書かれており、C# と Python でしかコーディングできません。.otf および .ttf ロジックをコーディングするのはどのくらい難しいですか?
ありがとうモーフ
タイトルが示すように、.ttf ファイルと .otf ファイルを読み取って、ユーザーがカーニング、文字幅、文字間隔を調整できるソフトウェアを構築したいと考えています。freetype プロジェクトについては知っていますが、C で書かれており、C# と Python でしかコーディングできません。.otf および .ttf ロジックをコーディングするのはどのくらい難しいですか?
ありがとうモーフ
TrueType (.ttf) および OpenType (.otf) ファイルを読み取り、カーニング、文字幅、および文字間隔テーブルを調整できるようにするソフトウェアを作成するのがどれほど難しいかという質問がありました。さて、私はあなたに話します。それは難しい。
Microsoft Typography のThe OpenType Font Fileは、TrueType および OpenType フォント ファイルの高レベルの構造を紹介するのに適しています。内部構造は、いくつかのグローバル インデックス フィールドとチェックサム フィールドで構成され、その後にいくつかの「テーブル」が続き、それぞれ独自の内部構造があります。このグローバル構造をアンパックし、変更するテーブルを解析して変更し、グローバル構造を再構築してチェックサムを再計算するコードを記述する必要があります。
ユーザーがカーニング、文字幅、および文字間隔を変更できるようにするには、少なくとも、、、およびテーブルを変更する必要がkern
ありhmtx
ますgpos
。これらのテーブルへの変更は、他のテーブルの値に影響を与える可能性があります。
さらに、テキスト エンジンとアプリケーション ソフトウェアには、OpenType または TrueType フォントのコンテンツに対する独自の期待があります。これらの相互作用は複雑で、常に十分に文書化されているわけではありません。要求の厳しいテキスト レイアウト ソフトウェアで動作する、有能で信頼できるすべてのフォントには、膨大なノウハウと苦労した経験を反映した内容の詳細が含まれていると思います。
既存の freetype コードを使用するために C 言語を学習するのが難しいと思われる場合は、ツールによって変更されたフォントがテキスト レイアウト ソフトウェアで機能しない理由をデバッグしてみるまで待ってください。
フォントにどのような変更を加えたいかは言いません。独自のソフトウェアを作成するのではなく、既存のソフトウェアを購入してみませんか? FontLab のTypeToolのようなアプリケーション ソフトウェアがあり、必要なカーニング、文字幅、および文字間隔のすべての編集を行うことができます。確かにお金はかかりますが、あなたの時間の価値と、あなたのコードがあなたのニーズを満たすのに十分にうまく機能するようになるまでにどれだけの時間がかかるかを考えてみてください。
どうしても独自のコードを書きたい場合は、Adobe Font Development Kit for Opentype (AFDKO) が役立つことがあります。幸運を。