Imaging 概要

Sce.PlayStation.Core.Imaging は、画像処理関連の機能を提供します。画像ファイルをロードしたり、画像の中に文字をレンダリングしたりすることができます。

画像

Image クラスは、画像を表すクラスです。Image は、PNG, JPG, BMP, GIF画像ファイル(ただしアニメーションGIFは非対応)から作成したり、色とサイズから単色で塗られた画像を作成することができます。

Image.Resize() や Image.Crop() など、画像を変換するメソッドが提供されます。また、Image.DrawText() や Image.DrawImage() など、画像の中に文字や他の画像を貼り付けるメソッドが提供されます。

Imageからテクスチャを作成するには、Image.ToBuffer()を使用して画像のメモリイメージを取得し、Texture2D.SetPixels()に渡します。

フォントと文字の描画

Image.DrawText() を呼び出すことで、画像の中に文字を描画することができます。Image.DrawText() に Font オブジェクトを渡して、文字の描画に使用するフォントを指定することができます。

フォントの利用には次の2つの方法があります。

  • PSMが標準で搭載しているフォントを使う。
  • フォントを指定して使う。

PSMが標準で搭載しているフォントを使う

PSMが標準で搭載しているフォントを使うには、Fontクラスのインスタンスを生成する時、FontのコンストラクタにFontAlias.Systemを指定します。現在、システムフォントとして提供されているのはFontAlias.System のみです。

例: new Font(FontAlias.System, size, FontStyle.Regular),

フォントを指定して使う

フォントを指定して使うには以下のようにします。

  1. 使用したいTrueType形式のフォントファイルをプロジェクトに登録し、ビルドアクションにContentを設定します。
  2. Fontクラスのコンストラクタ Font( string filename, int size, FontStyle style ) を使い、filenameにフォントファイル名を渡してインスタンスを生成します。

文字の情報

Font.GetTextWidth() は、文字の描画に必要な画像の横幅を取得するメソッドです。文字列の長さに応じて、画像のサイズを決定するためにこのメソッドを使用します。

また、Font.GetTextMetrics() は、文字ごとのメトリクス情報(尺情報)を取得するメソッドです。これは文字ごとの幅や高さなどを取得するために使用します。

./image/metrics.PNG

図1 文字のメトリクス情報(尺情報)

詳しくは、 Sce.PlayStation.Core.Imaging.CharMetricsSce.PlayStation.Core.Imaging.FontMetrics をご覧ください。