私のプログラムでは、すべての数字文字 (0..9) を左から右に配置したビットマップと、その他のいくつかの文字を生成する必要があります。
ユーザーは UI から選択します。
- 目的のフォント、および
- 目的の文字の高さ (ピクセル単位)。
したがって、ビットマップを作成し、次にこのビットマップからグラフィックスを作成し、数字を1つずつこのビットマップに描画してから、ディスクに保存します。
何時間もかけて理解できなかったこと: 数字 '0' がユーザーによって指定された高さになるように、正しいサイズのフォントを作成するにはどうすればよいですか?
Font コンストラクターのすべてのパラメーター、StringFormat のプロパティ、MeasureString/MeasureText/MeasureCharacterRanges で遊んで、P/Invoke (正/負の nHeight) を介してネイティブの CreateFont() でフォントを作成しようとしました。「サイズ」または「高さ」と呼ばれるすべてのパラメーターは、「0」よりもはるかに大きい架空の文字のサイズを示しているようです。
行の高さ、全角の高さ、アセント、ディセントなどの理論を読みました。パディングやスペーシングなどを除いて、文字の実際の高さについての概念はないようです
再び私の質問: フォント名と '0' グリフの目的のピクセルの高さが与えられた場合、必要な高さでそのグリフを描画するフォントを作成するにはどうすればよいですか?
ガイダンスをいただければ幸いです。
後の編集私のプロジェクトに関する詳細: これは大きなディスプレイを備えた組み込みデバイスであり、デザイナーが好みのビットマップ フォントを生成して試すための簡単な方法を提供する必要があります。このようなビットマップ フォントを生成する Windows ツールは、私にとって優れたソリューションのように思えました。