FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_TextImage クラス

文字列板を管理するクラス [詳解]

#include <CLI/FK_CLI/include/TextImage_CLI.h>

+ FK_CLI::fk_TextImage の継承関係図
+ FK_CLI::fk_TextImage 連携図

公開メンバ関数

 fk_TextImage ()
 コンストラクタ
 
 ~fk_TextImage ()
 デストラクタ
 
 !fk_TextImage ()
 ファイナライザ
 
フォント関連メソッド
bool InitFont (String^ fontFileName)
 フォント情報入力メソッド
 
文字配置事前設定関連メソッド
void SetOffset (int up, int down, int left, int right)
 オフセット設定メソッド
 
int GetUpOffset (void)
 オフセット上幅参照メソッド
 
int GetDownOffset (void)
 オフセット下幅参照メソッド
 
int GetLeftOffset (void)
 オフセット左幅参照メソッド
 
int GetRightOffset (void)
 オフセット右幅参照メソッド
 
文字列入力メソッド
bool LoadUniStr (fk_UniStr^ str)
 文字列データ入力メソッド
 
bool LoadStrFile (String^ fileName, fk_StringCode code)
 文字列データファイル入力メソッド1
 
bool LoadStrFile (String^ fileName)
 文字列データファイル入力メソッド2
 
int GetLineCharNum (int num)
 行中文字数参照メソッド
 
int GetLineWidth (int num)
 行横幅参照メソッド
 
int GetLineHeight (int num)
 行縦幅参照メソッド
 
int GetLineStartXPos (int num)
 行開始位置 x 成分取得メソッド
 
int GetLineStartYPos (int num)
 行開始位置 y 成分取得メソッド
 
文字送り関連メソッド
bool Send (void)
 文字送り実行メソッド
 
bool Finish (void)
 文字送り完了メソッド
 
bool Clear (void)
 文字送り初期化メソッド
 
- 基底クラス FK_CLI::fk_Image に属する継承公開メンバ関数
 fk_Image ()
 コンストラクタ1
 
 fk_Image (int W, int H)
 コンストラクタ
 
 ~fk_Image ()
 デストラクタ
 
 !fk_Image ()
 ファイナライザ
 
void Init (void)
 初期化メソッド
 
void NewImage (int w, int h, bool initFlg)
 画像領域生成メソッド1
 
void NewImage (int w, int h)
 画像領域生成メソッド2
 
void CopyImage (fk_Image^ image)
 画像データコピーメソッド1
 
void CopyImage (fk_Image^ image, int x, int y)
 画像データコピーメソッド2
 
bool SubImage (fk_Image^ image, int x, int y, int w, int h)
 画像データ部分抽出メソッド
 
int GetR (int x, int y)
 ピクセルR要素取得メソッド
 
int GetG (int x, int y)
 ピクセルG要素取得メソッド
 
int GetB (int x, int y)
 ピクセルB要素取得メソッド
 
int GetA (int x, int y)
 ピクセルA要素取得メソッド
 
bool SetRGBA (int x, int y, int r, int g, int b, int a)
 ピクセル RGBA 値設定メソッド
 
bool SetRGB (int x, int y, int r, int g, int b)
 ピクセル RGB 値設定メソッド
 
bool SetR (int x, int y, int r)
 ピクセル R 値設定メソッド
 
bool SetG (int x, int y, int g)
 ピクセル G 値設定メソッド
 
bool SetB (int x, int y, int b)
 ピクセル B 値設定メソッド
 
bool SetA (int x, int y, int a)
 ピクセル A 値設定メソッド
 
void FillColor (fk_Color^ color)
 バッファ全体初期化メソッド1
 
void FillColor (int r, int g, int b, int a)
 バッファ全体初期化メソッド2
 
void FillColor (int r, int g, int b)
 バッファ全体初期化メソッド3
 
bool ReadBMP (String^ fileName)
 BMP ファイル入力メソッド
 
bool ReadPNG (String^ fileName)
 PNG ファイル入力メソッド
 
bool ReadJPG (String^ fileName)
 JPEG ファイル入力メソッド
 
bool WriteBMP (String^ fileName, bool transFlg)
 BMP ファイル出力メソッド1
 
bool WriteBMP (String^ fileName)
 BMP ファイル出力メソッド2
 
bool WritePNG (String^ fileName, bool transFlg)
 PNG ファイル出力メソッド1
 
bool WritePNG (String^ fileName)
 PNG ファイル出力メソッド2
 
bool WriteJPG (String^ fileName, int quality)
 JPEG ファイル出力メソッド1
 
bool WriteJPG (String^ fileName)
 JPEG ファイル出力メソッド2
 

静的公開メンバ関数

キャッシュ関連メソッド
static void ClearCache (void)
 キャッシュ初期化メソッド
 

プロパティ

int DPI [get, set]
 フォント解像度プロパティ
 
int PTSize [get, set]
 フォントサイズプロパティ
 
int BoldStrength [get, set]
 太さ値プロパティ
 
bool ShadowMode [get, set]
 影付け効果プロパティ
 
fk_DimensionShadowOffset [get, set]
 影付けずらし幅プロパティ
 
fk_ColorShadowColor [get, set]
 影付け色プロパティ
 
fk_ColorForeColor [get, set]
 文字色プロパティ
 
fk_ColorBackColor [get, set]
 背景色プロパティ
 
bool SmoothMode [get, set]
 アンチエイリアシング効果プロパティ
 
bool MonospaceMode [get, set]
 等幅表示プロパティ
 
int MonospaceSize [get, set]
 等幅表示文字幅プロパティ
 
int CharSkip [get, set]
 文字間幅プロパティ
 
int LineSkip [get, set]
 行間幅プロパティ
 
int SpaceLineSkip [get, set]
 空行縦幅プロパティ
 
fk_TextAlign Align [get, set]
 文字列寄せ方向(アライメント)プロパティ
 
int MinLineWidth [get, set]
 画像最小横幅プロパティ
 
int LineNum [get]
 行数プロパティ
 
int AllCharNum [get]
 文字数プロパティ
 
int MaxLineWidth [get]
 最大横幅プロパティ
 
int MaxLineHeight [get]
 最大縦幅プロパティ
 
fk_TextSendingMode SendingMode [get, set]
 文字送りモードプロパティ
 
static bool CacheMode [get, set]
 キャッシュ機能制御プロパティ
 
- 基底クラス FK_CLI::fk_Image に属する継承プロパティ
fk_Colordefault [int, int] [get, set]
 画素プロパティ
 
fk_DimensionSize [get]
 画像サイズプロパティ
 
fk_DimensionBufferSize [get]
 画像バッファサイズプロパティ
 

詳解

文字列板を管理するクラス

このクラスは、文字列板を制御する機能を提供します。

本クラスは fk_Image の派生クラスであり、本質的には画像を意味します。 通常の画像に対し、文字列を表示することに特化したクラスです。 このクラスを用いて作成した文字列を矩形テクスチャとすることで、 シーン上にメッセージを表示することができます。 実質的には通常の矩形テクスチャとなりますので、 単純に画面に文字を表示するだけではなく、 3次元空間中に自由に配置することができます。

文字列画像生成に際しては、複数行を一枚の画像中に表示することができます。 その際、左寄り、中寄り、右寄りといったアライメントや、 画像端からのマージンなども細かく設定することができます。

また、本クラスの特徴的な機能として「文字送り」があります。 これは、初期状態として全ての文字が表示されていない状態にしておき、 一文字ずつ、あるいは一行ずつ順番に表示していくという機能です。

本クラスを用いる場合、以下の順番で処理を進める必要があります。

  1. フォント情報の入力 (InitFont())
  2. 描画色、配置などの各種設定
  3. 文字列の入力

これは、実際の画像生成を文字列データ入力の段階で行うため、 それ以外の設定を事前にしておかなければならないためです。 詳細はユーザーズマニュアルの「文字列板」の項目を参照して下さい。

なお、文字列板はその性質上、常に画面上で最前面に表示しておきたい場合が多くあります。 これは、シーン登録においてオーバーレイモデルとして登録することで容易に実現できます。 詳細は fk_DisplayLink::EntryOverlayModel() の解説を参照して下さい。

参照
fk_Image, fk_UniStr, fk_RectTexture, fk_Scene, fk_SpriteModel

構築子と解体子

◆ fk_TextImage()

FK_CLI::fk_TextImage::fk_TextImage ( )

コンストラクタ

◆ ~fk_TextImage()

FK_CLI::fk_TextImage::~fk_TextImage ( )

デストラクタ

◆ !fk_TextImage()

FK_CLI::fk_TextImage::!fk_TextImage ( )

ファイナライザ

関数詳解

◆ InitFont()

bool FK_CLI::fk_TextImage::InitFont ( String^  fontFileName)

フォント情報入力メソッド

フォントの入力を行います。 ここで指定するものは TrueType 形式のフォントファイルとなります。 通常は「ttf」あるいは「ttc」という拡張子のファイルとなっています。

なお、このメソッドは LoadUniStr()LoadStrFile() などの文字列入力よりも先に行っておく必要があります。

引数
[in]fontFileNameフォントファイル名
戻り値
フォントの設定に成功すれば true を、失敗すれば false を返します。
注意
各種 OS に付属しているフォントファイルや、 商用のフォントファイルの中には、 ライセンス上再配布が禁止されているものがあります。 プログラムの配布時には必ずライセンスの確認を行ってください。

◆ SetOffset()

void FK_CLI::fk_TextImage::SetOffset ( int  up,
int  down,
int  left,
int  right 
)

オフセット設定メソッド

文字が実際に表示されている部分と、画面の縁までの幅を設定します。 単位はピクセルとなります。 デフォルトでは、全て 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

引数
[in]up上幅
[in]down下幅
[in]left左幅
[in]right右幅
参照
CharSkip, LineSkip, SpaceLineSkip, DPI, PTSize

◆ GetUpOffset()

int FK_CLI::fk_TextImage::GetUpOffset ( void  )

オフセット上幅参照メソッド

文字が実際に表示されている部分のうち、上側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
上幅
参照
SetOffset()

◆ GetDownOffset()

int FK_CLI::fk_TextImage::GetDownOffset ( void  )

オフセット下幅参照メソッド

文字が実際に表示されている部分のうち、下側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
下幅
参照
SetOffset()

◆ GetLeftOffset()

int FK_CLI::fk_TextImage::GetLeftOffset ( void  )

オフセット左幅参照メソッド

文字が実際に表示されている部分のうち、左側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
左幅
参照
SetOffset()

◆ GetRightOffset()

int FK_CLI::fk_TextImage::GetRightOffset ( void  )

オフセット右幅参照メソッド

文字が実際に表示されている部分のうち、右側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
右幅
参照
SetOffset()

◆ LoadUniStr()

bool FK_CLI::fk_TextImage::LoadUniStr ( fk_UniStr str)

文字列データ入力メソッド

fk_UniStr 型のインスタンスに格納されている文字列を入力します。

文字列板画像は、 このメソッドかまたは LoadStrFile() が呼ばれた時点で生成されます。 従って、色や配置などの設定は本メソッドを呼ぶ前に行わなければなりません。

既に本メソッドを実行したインスタンスに対し、改めて本メソッドを実行することは可能です。 その場合は、新たな文字列と設定に基づき、文字列板画像を再構築します。

引数
[in]str文字列が格納されているインスタンス
戻り値
文字列板生成に成功すれば true を、失敗すれば false を返します。
参照
LoadStrFile()

◆ LoadStrFile() [1/2]

bool FK_CLI::fk_TextImage::LoadStrFile ( String^  fileName,
fk_StringCode  code 
)

文字列データファイル入力メソッド1

テキストファイルに入っている文字列を入力します。

文字列板画像は、 このメソッドかまたは LoadUniStr() が呼ばれた時点で生成されます。 従って、色や配置などの設定は本メソッドを呼ぶ前に行わなければなりません。

既に本メソッドを実行したインスタンスに対し、改めて本メソッドを実行することは可能です。 その場合は、新たな文字列と設定に基づき、文字列板画像を再構築します。

引数
[in]fileNameファイル名
[in]code入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。
戻り値
文字列板生成に成功すれば true を、失敗すれば false を返します。

◆ LoadStrFile() [2/2]

bool FK_CLI::fk_TextImage::LoadStrFile ( String^  fileName)

文字列データファイル入力メソッド2

テキストファイルに入っている文字列を入力します。 なお、文字コードは UTF-16 であることを前提としています。 その他の文字コードで入力したい場合は LoadStrFile(String^, fk_StringCode) を利用して下さい。

文字列板画像は、 このメソッドかまたは LoadUniStr() が呼ばれた時点で生成されます。 従って、色や配置などの設定は本メソッドを呼ぶ前に行わなければなりません。

既に本メソッドを実行したインスタンスに対し、改めて本メソッドを実行することは可能です。 その場合は、新たな文字列と設定に基づき、文字列板画像を再構築します。

引数
[in]fileNameファイル名
戻り値
文字列板生成に成功すれば true を、失敗すれば false を返します。

◆ GetLineCharNum()

int FK_CLI::fk_TextImage::GetLineCharNum ( int  num)

行中文字数参照メソッド

入力した文字列中の、指定した行の文字数を取得します。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
文字数
参照
LineNum, AllCharNum, LoadUniStr(), LoadStrFile()

◆ GetLineWidth()

int FK_CLI::fk_TextImage::GetLineWidth ( int  num)

行横幅参照メソッド

入力した文字列中の、指定した行の横幅を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
横幅
参照
GetLineHeight(), MaxLineWidth

◆ GetLineHeight()

int FK_CLI::fk_TextImage::GetLineHeight ( int  num)

行縦幅参照メソッド

入力した文字列中の、指定した行の縦幅を取得します。 単位はピクセルとなります。

覚え書き
TrueType 形式のフォント、特に半角英数字については、 横幅、縦幅共に文字によって異なります。 結果として、行の縦幅も構成される文字によって異なってくることになります。
引数
[in]num行番号。最初の行は 0 となります。
戻り値
縦幅
参照
GetLineWidth(), MaxLineHeight

◆ GetLineStartXPos()

int FK_CLI::fk_TextImage::GetLineStartXPos ( int  num)

行開始位置 x 成分取得メソッド

入力した文字列中の、 指定した行の開始位置(文字列左下部分)の x 成分を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
行左下部分の x 成分
参照
GetLineStartYPos()

◆ GetLineStartYPos()

int FK_CLI::fk_TextImage::GetLineStartYPos ( int  num)

行開始位置 y 成分取得メソッド

入力した文字列中の、 指定した行の開始位置(文字列左下部分)の y 成分を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
行左下部分の y 成分
参照
GetLineStartXPos()

◆ Send()

bool FK_CLI::fk_TextImage::Send ( void  )

文字送り実行メソッド

fk_TextImage::SendingMode プロパティで指定したモードに従い、 文字送りを行います。

戻り値
文字送りが行われたら true を返します。 既に全ての文字が表示されていた状態で本メソッドを呼び出した場合は、 false を返します。
参照
SendingMode, Finish(), Clear()

◆ Finish()

bool FK_CLI::fk_TextImage::Finish ( void  )

文字送り完了メソッド

文字送りが有効である場合に、 まだ表示されていない文字を全て表示させます。

戻り値
本メソッドを呼び出した時点で、まだ表示されていない文字があり、 新たに表示された文字が存在した場合には true を返します。 呼び出した時点で既に全ての文字が表示されており、 新たに表示された文字が存在しなかった場合には false を返します。
参照
SendingMode, Send(), Clear()

◆ Clear()

bool FK_CLI::fk_TextImage::Clear ( void  )

文字送り初期化メソッド

文字送りが有効である場合に、 全ての文字を初期状態、つまり非表示の状態に戻します。

戻り値
本メソッドを呼び出した時点で、既に表示されていた文字があり、 なんらかの文字が消去された場合には true を返します。 呼び出した時点で文字が表示されておらず、 結果的に非表示となった文字が存在しなかった場合には false を返します。
参照
SendingMode, Send(), Finish()

◆ ClearCache()

static void FK_CLI::fk_TextImage::ClearCache ( void  )
static

キャッシュ初期化メソッド

キャッシュ機能が有効である場合に、 これまでのキャッシュデータをすべて消去します。

参照
CacheMode

プロパティ詳解

◆ DPI

int FK_CLI::fk_TextImage::DPI
getset

フォント解像度プロパティ

フォントの解像度の参照・設定を行います。 解像度を高くするほど高精細な画像となりますが、 画像サイズが大きくなるため描画時の負担が高くなっていきます。 デフォルトでは 48 に設定されています。

覚え書き
機能的には fk_TextImage::PTSize とほとんど同義になりますが、 フォントによっては解像度が高い場合とサイズが大きい場合では 異なった描画結果となることがあります。
参照
PTSize

◆ PTSize

int FK_CLI::fk_TextImage::PTSize
getset

フォントサイズプロパティ

フォントのサイズの参照・設定を行います。 サイズを大きくするほど高精細な画像となりますが、 画像サイズが大きくなるため描画時の負担が高くなっていきます。 デフォルトでは 48 に設定されています。

覚え書き
機能的には fk_TextImage::DPI とほとんど同義になりますが、 フォントによっては解像度が高い場合とサイズが大きい場合では 異なった描画結果となることがあります。
参照
DPI

◆ BoldStrength

int FK_CLI::fk_TextImage::BoldStrength
getset

太さ値プロパティ

文字の太さを数値に応じて太くします。 高い値であるほど、線が太くなっていきます。 デフォルトは 1 となっています。 太さの度合いについては、解像度やフォントサイズに依存するので、 それぞれと合わせて調整する必要があります。

引数
[in]str太さ値
参照
DPI, PTSize

◆ ShadowMode

bool FK_CLI::fk_TextImage::ShadowMode
getset

影付け効果プロパティ

表示文字に対し、影付け効果有無の参照・設定を行います。 true の場合有効、false の場合無効となります。 デフォルトでは無効となっています。

参照
ShadowOffset, ShadowColor

◆ ShadowOffset

fk_Dimension^ FK_CLI::fk_TextImage::ShadowOffset
getset

影付けずらし幅プロパティ

影付け効果の際、影のずらし幅を設定します。

x 成分は横方向のずれを設定します。単位はピクセルです。 正の値で右方向、負の値で左方向にずらします。

y 成分は縦方向のずれを設定します。単位はピクセルです。 正の値で下方向、負の値で上方向にずらします。

参照
ShadowMode, ShadowColor, fk_Dimension

◆ ShadowColor

fk_Color^ FK_CLI::fk_TextImage::ShadowColor
getset

影付け色プロパティ

影付け効果の際の、影の色の参照・設定を行います。透過色設定も有効となります。

参照
ShadowMode, ShadowOffset, fk_Color

◆ ForeColor

fk_Color^ FK_CLI::fk_TextImage::ForeColor
getset

文字色プロパティ

文字色の参照・設定を行います。透過色設定も有効となります。

参照
BackColor, SmoothMode

◆ BackColor

fk_Color^ FK_CLI::fk_TextImage::BackColor
getset

背景色プロパティ

背景色の参照・設定を行います。透過色設定も有効となります。

参照
ForeColor, SmoothMode

◆ SmoothMode

bool FK_CLI::fk_TextImage::SmoothMode
getset

アンチエイリアシング効果プロパティ

表示文字に対し、アンチエイリアシング効果の有無の参照・設定を行います。 true の場合有効、false の場合無効となります。

この設定を有効とした場合、 表示の際に文字色と背景色の中間色も描画に利用されるようになります。 逆に無効とした場合、描画の際には文字色と背景色以外は利用されなくなります。 デフォルトでは有効となっています。

参照
ForeColor, BackColor

◆ MonospaceMode

bool FK_CLI::fk_TextImage::MonospaceMode
getset

等幅表示プロパティ

文字の等幅表示効果の参照・設定を行います。 true の場合有効、false の場合無効となります。 デフォルトでは無効となっています。

設定を有効とした場合、半角全角問わず全ての文字を等幅で表示します。 なお、 fk_TextImage::CharSkip によって設定する文字間幅は等幅においても有効となります。

覚え書き
fk_TextImage::MonospaceSize によって文字幅を設定しないと、 文字幅が 0 として表示されてしまうため、何も表示されていない状況となります。
参照
MonospaceSize, CharSkip

◆ MonospaceSize

int FK_CLI::fk_TextImage::MonospaceSize
getset

等幅表示文字幅プロパティ

等幅表示の際の文字幅の参照・設定を行います。単位はピクセルとなります。 デフォルトでは 0 が設定されています。

覚え書き
等幅表示は、 fk_TextImage::MonospaceMode で設定を有効としなければ等幅表示とはなりません。
参照
MonospaceMode, CharSkip

◆ CharSkip

int FK_CLI::fk_TextImage::CharSkip
getset

文字間幅プロパティ

文字同士の横方向の空白幅の参照・設定を行います。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

参照
LineSkip, SpaceLineSkip, SetOffset(), DPI, PTSize, MonospaceMode, MonospaceSize

◆ LineSkip

int FK_CLI::fk_TextImage::LineSkip
getset

行間幅プロパティ

行同士の縦方向の空白幅の参照・設定を行います。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

参照
CharSkip, SpaceLineSkip, SetOffset(), DPI, PTSize

◆ SpaceLineSkip

int FK_CLI::fk_TextImage::SpaceLineSkip
getset

空行縦幅プロパティ

文字列中に空行が入っていた場合の、その縦幅を設定します。 単位はピクセルとなります。 この値が 0 である場合、空行は結果的に省略されることになります。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

参照
CharSkip, LineSkip, SetOffset(), DPI, PTSize

◆ Align

fk_TextAlign FK_CLI::fk_TextImage::Align
getset

文字列寄せ方向(アライメント)プロパティ

文字列を表示する際の、文字寄せ方向(アライメント)の参照・設定を行います。

複数行に渡る文字列の場合で、各行の横幅が異なる場合や、 fk_TextImage::MinLineWidth によって画像の横幅をあらかじめ設定した場合などは、 行の横幅が画像の横幅に満たない状況が生じます。 このような行に対し、本メソッドでどちら側に寄るのかを設定します。 デフォルトは fk_Align.LEFT 、つまり左寄せとなっています。

参照
fk_TextAlign, MinLineWidth

◆ MinLineWidth

int FK_CLI::fk_TextImage::MinLineWidth
getset

画像最小横幅プロパティ

生成される文字列板画像の横幅の最小値の参照・設定を行います。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

通常、文字列板として生成される画像の横幅は、 入力した文字列に依存します。 行の文字数が多ければ幅は広がり、逆に少ない場合は狭まります。 このような異なる画像を同じテクスチャ画像として連続に表示した場合、 一文字の横幅が画像によって変動してしまうという現象が生じます。 これは、あまり見栄えが良いとは言えません。 そのような場合、本メソッドを用いて十分な横幅を予め確保しておきます。 そうすることで、文字列はアライメントに従って適切に配置され、 文字の幅も画像によって変わることはありません。

ただし、ここで設定した横幅を超える幅を持つ行が発生した場合、 画像の幅はその行による幅に設定されることになります。

参照
Align

◆ LineNum

int FK_CLI::fk_TextImage::LineNum
get

行数プロパティ

入力した文字列の行数を参照します。

参照
LoadUniStr(), LoadStrFile()

◆ AllCharNum

int FK_CLI::fk_TextImage::AllCharNum
get

文字数プロパティ

入力した文字列の文字数を参照します。

参照
LineNum, GetLineCharNum(), LoadUniStr(), LoadStrFile()

◆ MaxLineWidth

int FK_CLI::fk_TextImage::MaxLineWidth
get

最大横幅プロパティ

入力した文字列のうち、最も横幅が広い行の横幅を参照します。 単位はピクセルとなります。

画像の横幅を直接取得するには、 fk_Image::Size を利用して下さい。

参照
MaxLineHeight, MinLineWidth, GetLineWidth()

◆ MaxLineHeight

int FK_CLI::fk_TextImage::MaxLineHeight
get

最大縦幅プロパティ

入力した文字列のうち、最も縦幅が広い行の縦幅を参照します。 単位はピクセルとなります。

画像全体の縦幅を取得するには、 fk_Image::Size を利用して下さい。

覚え書き
TrueType 形式のフォント、特に半角英数字については、 横幅、縦幅共に文字によって異なります。 結果として、行の縦幅も構成される文字によって異なってくることになります。
参照
MaxLineWidth, GetLineHeight()

◆ SendingMode

fk_TextSendingMode FK_CLI::fk_TextImage::SendingMode
getset

文字送りモードプロパティ

文字送りのモードの参照・設定を行います。

「文字送り」とは、読み込んだ文字列を最初は表示せず、 一文字ずつ、あるいは一行ずつ徐々に表示していく機能のことです。 文字送りを有効とした場合、 Send() を呼び出すごとに一文字ずつ、あるいは一行ずつが表示されていきます。 一度表示した文字列については、 Clear() を呼び出すことで初期状態 (文字が表示されていない状態)に戻すことができます。

本メソッドは、文字列を LoadUniStr()LoadStrFile() で入力する前に設定しておくことが可能です。 また、入力後に動的に変更することも可能です。

値として、以下のものが設定可能です。

- fk_TextSendingMode.CHAR: 一文字ずつ送るモード。
- fk_TextSendingMode.LINE: 一行ずつ送るモード。
- fk_TextSendingMode.ALL: 文字送りを無効とするモード。
参照
Send(), Finish(), Clear()

◆ CacheMode

bool FK_CLI::fk_TextImage::CacheMode
staticgetset

キャッシュ機能制御プロパティ

このメソッドは、フォントデータのキャッシュの制御を参照・設定します。 true であれば有効、false であれば無効とします。 デフォルトでは無効となっています。

文字列の画像を生成する際には、 入力されたフォントデータからビットマップとしての 画像情報に変換するという処理がなされます。 同じ文字に対してこの処理を行うことは、計算時間の点で無駄となります。 そこで、 fk_TextImage には一度得た画像情報を保存しておき、 同じ文字が登場した際には再利用するという機能があります。 これが「キャッシュ機能」です。 特に数字やアルファベット、平仮名などは再利用する頻度が高いため、 本機能を有効とすることで処理が高速となる利点があります。

一方、キャッシュ機能はメモリの利用量が増えることを意味します。 高い解像度やフォントサイズを用いている場合は、 キャッシュのメモリ利用量も膨大となっていきますので、 場合によっては処理速度がむしろ低下することもありえます。

ここで利用されるキャッシュデータは、 インスタンス毎ではなくシステム全体で共有されます。 従って、異なるインスタンスで読み込んだ文字に関しても キャッシュ効果が働くことになります。

参照
ClearCache()