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

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

【プレビュー】

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

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

2. オーバレイの生成

下記のように CFviOverlay のハンドルを Overlays に追加し、Scaling プロパティで伸縮属性を true に設定します。 ここでは、Overlay1ToolStripMenuItem_Click イベントハンドラ内に処理を記述しています。 メニュー項目の作成やイベントハンドラの作成方法については省略します。
Form1.vb
Private Sub Overlay1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Overlay1ToolStripMenuItem.Click
'' オーバレイ(m_overlay1)が生成済みの場合は無視します.
If True = CFviImageView1.Display.FindOverlay(m_overlay1) Then
System.Windows.Forms.MessageBox.Show("既に生成されています.")
Return
End If
'' オーバレイを生成して、ハンドルを保管します.
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()
End Sub

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

前述で作成したオーバレイに図形を描画します。 ここでは傾きのある青い矩形の枠を描画しています。
'' 1) 矩形の描画.
Dim 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(&H0, &H0, &HFF)

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

次に画像を描画します。 ここでは、前述の矩形枠の半透明塗り潰しとして利用しています。
'' 2) 画像の描画.
Dim 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(&H0, &H0, &HFF))
gimg.Alpha = &H7F
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