漢字フォントをイメージファイル(png)に埋め込む2015年08月26日 20:01

漢字の神経衰弱パズルを作ろうと思い立つ。WinRT XAML ToolkitのImageToggleButtonを用い、ボタンを押すと、カードの裏の漢字を表示する。必要になるのが、漢字フォントを埋め込んだイメージファイル(png)。1000文字以上あるので、事前に用意せず、都度、作りたい。

ところが、ストアアプリ(UWP)では、Font class、Graphics class、Bitmap class などは使えない。GDIでの手法は使えない。見栄えの問題はあるが、RenderTargetBitmapを使うことにする。元来、画面に表示するイメージのサムネールを作る用途などで使われる。

Fontを埋め込んだpngファイル

上段のGridにTextBlockを置き、文字を入れ替えながら、表示をイメージファイルに落とし込む。下段のGridにはImageToggleButtonを並べる。作成したイメージファイルは、ImageToggleButtonのImageSourceに登録する。

Fontをpngファイルに埋め込む - XAML

該当するXAMLの定義部分。内側のGridがイメージの取り込み元。その中のTextBlockを切り替える。

Font

コード例。RenderTargetBitmapのRenderAsyncでイメージを生成。Gridのサイズとは異なってよい。多様な画面に対応するため、大きめで用意。GetPixelsAsyncで生成したデータを取り込む。byte列に変更してから、BitmapEncoderでファイルに出力。

一時フォルダ

出力先は、一時フォルダ。

それなりに手間はかかるが、なんとかできるもの。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://c5d5e5.asablo.jp/blog/2015/08/26/7751309/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。