PrivateFontCollectionはフォントファイルからフォント情報を読み込み、フォントファミリを保持するためのクラス。 例えばシステムにインストールされていない独自のフォントを読み込み、それを使ってテキストを描画するなどの目的に用いる。
フォントは、フォントファイルからだけではなく、メモリ上に存在するフォント情報からも作成することができる。
PrivateFontCollectionを用いてフォントファイルを読み込み、読み込んだフォントを用いてテキストを描画する例。
using System; using System.Drawing; using System.Drawing.Text; public class PrivateFontCollectionSample { public static void Main() { ( new PrivateFontCollectionSample() ).Run(); } private void Run() { PrivateFontCollection privateFont = new PrivateFontCollection(); privateFont.AddFontFile( @".\font.ttf" ); // フォントファイルに含まれるフォントファミリの名前を出力する foreach ( FontFamily family in privateFont.Families ) { Console.WriteLine( family.ToString() ); } // 読み込んだフォントを使用して文字を描画し、ビットマップファイルに保存する using ( Bitmap b = new Bitmap( 240, 80 ) ) { using ( Graphics g = Graphics.FromImage( b ) ) { using ( Font f = new Font( privateFont.Families[0], 20 ) ) { g.Clear( Color.Yellow ); g.DrawString( "ABC日本語あいう", f, Brushes.Black, 0.0f, 0.0f ); b.Save( @".\sample.bmp" ); } } } privateFont.Dispose(); } }