WIL説明書(.NET)  3.1.0
スケーリング無し (伸縮しない)

画像の表示倍率に依存しないオーバレイの生成方法を示します。

【プレビュー】

StartUp_FVIL_8_2.png
1. オーバレイへのハンドル

Form1 に CFviOverlay のハンドルを保管するメンバーフィールドを追加します。 後述のオーバレイの生成で CFviDisplay に追加したオーバレイを保管するために使用します。 ここでは、m_overlay2 というインスタンス名で作成しています。
Form1.cs
:
private FVIL.Data.CFviImage m_image = new FVIL.Data.CFviImage();
private FVIL.GDI.CFviOverlay m_overlay1 = null; // オーバレイ(スケーリング有り)
private FVIL.GDI.CFviOverlay m_overlay2 = null; // オーバレイ(スケーリング無し)

2. オーバレイの生成

下記のように CFviOverlay のハンドルを Overlays に追加し、Scaling プロパティで伸縮属性を false に設定します。 ここでは、overlay2ToolStripMenuItem_Click イベントハンドラ内に処理を記述しています。 メニュー項目の作成やイベントハンドラの作成方法については省略します。
Form1.cs
private void overlay2ToolStripMenuItem_Click(object sender, EventArgs e)
{
// オーバレイ(m_overlay2)が生成済みの場合は無視します.
if (true == cFviImageView1.Display.FindOverlay(m_overlay2))
{
System.Windows.Forms.MessageBox.Show("既に生成されています.");
return;
}
// オーバレイを生成して、ハンドルを保管します.
m_overlay2 = new FVIL.GDI.CFviOverlay();
cFviImageView1.Display.Overlays.Add(m_overlay2);
m_overlay2.Enable = true; // 可視属性=可視.
m_overlay2.Scaling = false; // 伸縮なし.
m_overlay2.ScalingMode = FVIL.GDI.ScalingMode.TopLeft;
// ----------------------------------------
// 文字列の描画.
// ※後述の 3. 図形の描画 (文字列) を参照.
// ----------------------------------------
cFviImageView1.Refresh();
}

3. 図形の描画 (文字列)

前述で作成したオーバレイに文字列を描画します。 ここでは、描画している画像のサイズとチャネル数と種別を3行に分けて描画しています。
FVIL.Data.CFviImage image = cFviImageView1.Image;
// 1) 文字の描画.
FVIL.GDI.CFviGdiString gstr1 = new FVIL.GDI.CFviGdiString();
m_overlay2.Figures.Add(gstr1);
gstr1.Text = System.String.Format("SIZE: {0}x{1}", image.HorzSize, image.VertSize );
gstr1.Position = new FVIL.Data.CFviPoint( 10, 10 );
gstr1.Color = System.Drawing.Color.FromArgb(0xFF,0x00,0x00);
// 2) 文字の描画.
FVIL.GDI.CFviGdiString gstr2 = new FVIL.GDI.CFviGdiString();
m_overlay2.Figures.Add(gstr2);
gstr2.Text = System.String.Format("CH : {0}", image.Channel );
gstr2.Position = new FVIL.Data.CFviPoint(10, gstr1.GetClipRect().Ed.Y);
gstr2.Color = System.Drawing.Color.FromArgb(0xFF,0xFF,0x00);
// 3) 文字の描画.
FVIL.GDI.CFviGdiString gstr3 = new FVIL.GDI.CFviGdiString();
m_overlay2.Figures.Add(gstr3);
gstr3.Text = System.String.Format("TYPE: {0}", image.ImageType.ToString() );
gstr3.Position = new FVIL.Data.CFviPoint( 10, gstr2.GetClipRect().Ed.Y );
gstr3.Color = System.Drawing.Color.FromArgb(0xFF,0x00,0xFF);


Documentation copyright © 2008 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時07分53秒 for WIL説明書(.NET) by doxygen 1.8.11