WIL説明書(.NET)  3.1.0
スケーリング有り (伸縮する)

画像の表示倍率に合わせて図形も伸縮するオーバレイの生成方法を示します。

【プレビュー】

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

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

2. オーバレイの生成

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

3-1. 図形の描画 (矩形)

前述で作成したオーバレイに図形を描画します。 ここでは傾きのある青い矩形の枠を描画しています。
// 1) 矩形の描画.
FVIL.GDI.CFviGdiRectangle rect = new FVIL.GDI.CFviGdiRectangle();
m_overlay1.Figures.Add( rect );
rect.CopyFrom( new FVIL.Data.CFviRectangle(0,0,134,136) );
rect.Position = new FVIL.Data.CFviPoint(123,23);
rect.Angle = new FVIL.Data.CFviAngle( -31.0 );
rect.Pen.Color = System.Drawing.Color.FromArgb(0x00,0x00,0xFF);

3-2. 図形の描画 (画像)

次に画像を描画します。 ここでは、前述の矩形枠の半透明塗り潰しとして利用しています。
// 2) 画像の描画.
FVIL.GDI.CFviGdiImage gimg = new FVIL.GDI.CFviGdiImage();
m_overlay1.Figures.Add( gimg );
gimg.SetSize(1,1,32);
gimg.Position = new FVIL.Data.CFviPoint(123,23);
gimg.Angle = new FVIL.Data.CFviAngle(-31.0);
gimg.SetPixelRGB(0,0, System.Drawing.Color.FromArgb(0x00,0x00,0xFF));
gimg.Alpha = 0x7F;
gimg.StretchHorzSize = 134;
gimg.StretchVertSize = 136;


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