Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public sealed class CFviDrawPatternRegist : CFviOverlay |
Visual Basic |
---|
<SerializableAttribute> Public NotInheritable Class CFviDrawPatternRegist Inherits CFviOverlay |
Remarks
パタン画像を生成する際に指定する登録位置の矩形(RegistRect)と基準点(CenterMark)を マウス操作で編集する為のオーバレイです。 実際の パタン生成処理 は、上位側から別途行う必要があります。
初期値と範囲:
プロパティ | 初期値 | 範囲 | 備考 |
---|---|---|---|
Active | false | false/true | マウス操作活性化属性です。 登録位置の矩形と基準点の編集を行う際は true です。 表示のみ行う際は false です。 |
Enable | false | false/true | 可視属性です。 登録位置の矩形と基準点の表示または編集を行う際に、上位側のアプリケーションで true に設定してください。 |
Scaling | true | true のみ | 伸縮属性です。 登録位置の矩形と基準点を表す図形を画像座標で描画しています。 false にする事は想定していません。 |
ScalingMode | FVIL.GDI.ScalingMode.Center | Center のみ | サブピクセル計算に影響します。 変更するとアクセス違反を起こす可能性がありますので変更しないでください。 |
RegistRect | 10,10 - 100,100 |
0≦X<画像幅 0≦Y<画像高さ St<Ed | 登録位置の矩形を表す図形です。 |
CenterMark | 10,10 |
0≦X<画像幅 0≦Y<画像高さ | 基準点を表す図形です。 |
CenterMarkPosition | Manual |
Manual: 手動 Center: 登録位置の矩形の中心 TopLeft: 登録位置の矩形の左上 | 基準点の位置の決定方法を示す値です。 |
このオーバレイで描画される図形は、 下記のように Figures 配列に格納されていますが、 将来的に配列の内容は変更される可能性があります。 この初期化内容に依存したプログラムを作らないようにしてください。 また、この配列をクリアされることを想定していません。
配列の初期化内容:プロパティ | 初期値 | 範囲 | 備考 |
---|---|---|---|
Figures[0] | CFviGdiRectangle | ※インスタンスの差し替えは想定していません。 | 登録位置の矩形を表す図形です。 |
Figures[1] | CFviGdiPoint | ※インスタンスの差し替えは想定していません。 | 基準点を表す図形です。 |
Examples
フォームに貼り付けた CFviImageView を介してパタン登録を行う例を示します。
上図左側の PropertyGrid コントロールには、
CFviImageView の
Display プロパティから取得した
CFviDisplay クラスのインスタンスを表示していますが この処理は任意です。
パタン登録オーバレイ表示切替:
下記サンプルコードの toolRegist_Click 関数内で、このオーバレイの表示切り替えを行っています。
上図の緑の矩形が登録位置の矩形(RegistRect)を表し、
赤い十字の中心が基準点(CenterMark)を示します。
Active プロパティを true に設定すると、
これらをマウス操作で移動やサイズ変更を行えます。
パタン生成:
下記サンプルコードの toolMakePattern_Click 関数内で、
登録位置の矩形(RegistRect) と
基準点(CenterMark)
を取得して元画像からパタン画像を生成しています。
ソースコード:
C# | Copy |
---|---|
// $Revision: 1.2 $ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace User.SampleCode.GDI { public partial class PatternRegistForm : Form { /// <summary> /// コンストラクタ. /// </summary> public PatternRegistForm() { InitializeComponent(); } /// <summary> /// フォームロード時の初期化処理. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnLoad(object sender, EventArgs e) { // (任意) ImageView.Display プロパティの表示/編集用. propertyGrid1.SelectedObject = ImageView.Display; // 表示対象画像の読み込み. FVIL.Data.CFviImage image = new FVIL.Data.CFviImage( Path.Combine(Program.DataDir, "fvc06_UC8_L.png") ); // 表示対象画像の設定. ImageView.Image = image; } /// <summary> /// パタン登録オーバレイ表示切替. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolRegist_Click(object sender, EventArgs e) { ImageView.Display.OverlayPatternRegist.Active = true; ImageView.Refresh(); } /// <summary> /// パタン生成. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolMakePattern_Click(object sender, EventArgs e) { // 元画像. FVIL.Data.CFviImage image = ImageView.Image; // 登録位置の矩形. FVIL.Data.CFviRectangle rect = ImageView.Display.OverlayPatternRegist.RegistRect.ToCFviRectangle(); // 基準点. FVIL.Data.CFviPoint mark = ImageView.Display.OverlayPatternRegist.CenterMark.ToCFviPoint(); // パタン生成. FVIL.Data.CFviPattern pattern = new FVIL.Data.CFviPattern(image, rect, mark); pattern.Save(Path.Combine(Program.ResultDir, "PatternRegist.pat")); } /// <summary> /// (任意) 画像ビューの表示更新時の処理. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ImageView_Paint(object sender, PaintEventArgs e) { // プロパティグリッドを更新します. propertyGrid1.Refresh(); } /// <summary> /// (任意) プロパティグリッドの値変更時の処理. /// </summary> /// <param name="s"></param> /// <param name="e"></param> private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { // 画像ビューを表示更新します. ImageView.Refresh(); } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Text Imports System.Windows.Forms Imports System.IO Namespace SampleCode.GDI Public Partial Class PatternRegistForm Inherits Form ''' <summary> ''' コンストラクタ. ''' </summary> Public Sub New() InitializeComponent() End Sub ''' <summary> ''' フォームロード時の初期化処理. ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Overloads Sub OnLoad(sender As Object, e As EventArgs) ' (任意) ImageView.Display プロパティの表示/編集用. propertyGrid1.SelectedObject = ImageView.Display ' 表示対象画像の読み込み. Dim image As New FVIL.Data.CFviImage(Path.Combine(Program.DataDir, "fvc06_UC8_L.png")) ' 表示対象画像の設定. ImageView.Image = image End Sub ''' <summary> ''' パタン登録オーバレイ表示切替. ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub toolRegist_Click(sender As Object, e As EventArgs) ImageView.Display.OverlayPatternRegist.Active = True ImageView.Refresh() End Sub ''' <summary> ''' パタン生成. ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub toolMakePattern_Click(sender As Object, e As EventArgs) ' 元画像. Dim image As FVIL.Data.CFviImage = ImageView.Image ' 登録位置の矩形. Dim rect As FVIL.Data.CFviRectangle = ImageView.Display.OverlayPatternRegist.RegistRect.ToCFviRectangle() ' 基準点. Dim mark As FVIL.Data.CFviPoint = ImageView.Display.OverlayPatternRegist.CenterMark.ToCFviPoint() ' パタン生成. Dim pattern As New FVIL.Data.CFviPattern(image, rect, mark) pattern.Save(Path.Combine(Program.ResultDir, "PatternRegist.pat")) End Sub ''' <summary> ''' (任意) 画像ビューの表示更新時の処理. ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub ImageView_Paint(sender As Object, e As PaintEventArgs) ' プロパティグリッドを更新します. propertyGrid1.Refresh() End Sub ''' <summary> ''' (任意) プロパティグリッドの値変更時の処理. ''' </summary> ''' <param name="s"></param> ''' <param name="e"></param> Private Sub propertyGrid1_PropertyValueChanged(s As Object, e As PropertyValueChangedEventArgs) ' 画像ビューを表示更新します. ImageView.Refresh() End Sub End Class End Namespace |
Inheritance Hierarchy
FVIL..::..CFviObject
FVIL.GDI..::..CFviOverlay
FVIL.GDI..::..CFviDrawPatternRegist