2020年4月15日水曜日

GlyphTypeface クラスのGetFontStream()メソッド

これまで、fontファイルにアクセスする際は、fontファイルを直接Openして、アクセスしてました。こんな感じです。
string sfontfile = フォントファイルのパス
FileStream fs = new FileStream(sfontfile, FileMode.Open, FileAccess.Read);


先日、MSDNで、GlyphTypeFaceクラスを見てたら、GetFontStream()というメソッドがあることに気づきました。


引用元 : https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.glyphtypeface?view=netframework-4.8


これ使えそうだなと思い、使ってみました。こんな感じです。
System.IO.Stream gfs = mytypeface.GetFontStream();
MemoryStream ms = new MemoryStream();
gfs.CopyTo(ms);
memorystreamにコピーしているのは、使い方がこれしか分からなかったためとなります。
元々Filestreamを使ってたので、Filestreamにキャストしたりしようとしてたのですが、うまくいかず、 とりあえずこの方法だと例外やエラーが発生しないので、こうしてます。


GlyphTypefaceをnewするときにフォントファイルのパスは必要なので、卵が先かにわとりが先かという感じもしますが、 一度GlyphTypefaceを作ってしまえばそこからフォントファイルにアクセスできるのは、利便性があると感じました。
0 件のコメント:
コメントを投稿