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

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

【プレビュー】

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

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

2. オーバレイの生成

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

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

前述で作成したオーバレイに文字列を描画します。 ここでは、描画している画像のサイズとチャネル数と種別を3行に分けて描画しています。
Dim Image As FVIL.Data.CFviImage = CFviImageView1.Image
'' 1) 文字の描画.
Dim 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(&HFF, &H0, &H0)
'' 2) 文字の描画.
Dim 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(&HFF, &HFF, &H0)
'' 3) 文字の描画.
Dim 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(&HFF, &H0, &HFF)


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