MakePattern メソッドのリビジョンの設定

Namespace: FVIL.Data
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public static void MakePatternRevision(
	int value
)
Visual Basic
Public Shared Sub MakePatternRevision ( 
	value As Integer
)

Parameters

value
Type: System..::..Int32
リビジョン番号 [初期値:0、範囲:0=端数を残す。, 1=端数を四捨五入する。]

Remarks

この関数は MakePattern メソッドの引数 rect (登録位置の矩形)の処理方法を切り替える為のものです。 リビジョン 0 は従来の処理を意味します。 従来の処理では、 MakePattern メソッドの引数 rect (登録位置の矩形) に指定された座標が1画素単位でない(端数がある)場合にサーチ機能の回答座標との矛盾が生じます。 通常は端数がない座標値を指定することを推奨します。 端数が発生する場合は、この関数でリビジョンを 1 に設定してご使用ください。

設定変更はアプリケーション起動時に1度行うだけで構いません。
尚、この設定値はライブラリ内で共有していますので、インスタンス毎に設定することはできません。

設定に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。

Examples

具体的な使用方法については下記コードを参考にしてください。
本例ではパタン登録の直前に本関数を呼び出していますが、必ずしも直前である必要はなく、 前述の通り、アプリケーション起動時に1度行うだけで構いません。

ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode
{
    public partial class Basic
    {
        [FvPluginExecute]
        public void MakePatternRevision()
        {
            System.Reflection.MethodBase method = System.Reflection.MethodBase.GetCurrentMethod();
            Console.WriteLine("{0}.{1}", method.DeclaringType.FullName, method.Name);

            // 既定値:
            MakePatternRevisionDemo();

            // リビジョン 1 に設定した場合:
            FVIL.Data.CFviPattern.MakePatternRevision(1);
            MakePatternRevisionDemo();

            // リビジョン 0 に設定した場合:
            FVIL.Data.CFviPattern.MakePatternRevision(0);
            MakePatternRevisionDemo();
        }

        public void MakePatternRevisionDemo()
        {
            Console.WriteLine("MakePatternRevision={0}", FVIL.Data.CFviPattern.MakePatternRevision());

            FVIL.Data.CFviImage src = new FVIL.Data.CFviImage();

            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/clip_UC8_M.png", src, FVIL.PixelMode.Unpacking);

            FVIL.Data.CFviPattern pattern = new FVIL.Data.CFviPattern();
            FVIL.Data.CFviRectangle rect = new FVIL.Data.CFviRectangle(134.4, 74.5, 181.1, 169.8);
            FVIL.Data.CFviPoint mark = new FVIL.Data.CFviPoint(167.6, 139.5);
            pattern.MakePattern( src, rect, mark );

            FVIL.Data.CFviRectangle _rect = pattern.RegistRect;
            FVIL.Data.CFviPoint _mark = pattern.CenterMark;

            Console.WriteLine("rect={0:F1},{1:F1},{2:F1},{3:F1}", _rect.St.X, _rect.St.Y, _rect.Ed.X, _rect.Ed.Y);
            Console.WriteLine("mark={0:F1},{1:F1}", _mark.X, _mark.Y);
        }
    };
}

出力結果:
Copy imageCopy
User.SampleCode.Basic.MakePatternRevision
MakePatternRevision=0
rect=134.40,74.50,181.10,169.80
mark=33.20,65.00
MakePatternRevision=1
rect=134.00,75.00,181.00,170.00
mark=33.60,64.50
MakePatternRevision=0
rect=134.40,74.50,181.10,169.80
mark=33.20,65.00


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode
    Partial Public Class Basic
        <FvPluginExecute> _
        Public Sub MakePatternRevision()
            Dim method As System.Reflection.MethodBase = System.Reflection.MethodBase.GetCurrentMethod()
            Console.WriteLine("{0}.{1}", method.DeclaringType.FullName, method.Name)

            ' 既定値:
            MakePatternRevisionDemo()

            ' リビジョン 1 に設定した場合:
            FVIL.Data.CFviPattern.MakePatternRevision(1)
            MakePatternRevisionDemo()

            ' リビジョン 0 に設定した場合:
            FVIL.Data.CFviPattern.MakePatternRevision(0)
            MakePatternRevisionDemo()
        End Sub

        Public Sub MakePatternRevisionDemo()
            Console.WriteLine("MakePatternRevision={0}", FVIL.Data.CFviPattern.MakePatternRevision())

            Dim src As New FVIL.Data.CFviImage()

            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/clip_UC8_M.png", src, FVIL.PixelMode.Unpacking)

            Dim pattern As New FVIL.Data.CFviPattern()
            Dim rect As New FVIL.Data.CFviRectangle(134.4, 74.5, 181.1, 169.8)
            Dim mark As New FVIL.Data.CFviPoint(167.6, 139.5)
            pattern.MakePattern(src, rect, mark)

            Dim _rect As FVIL.Data.CFviRectangle = pattern.RegistRect
            Dim _mark As FVIL.Data.CFviPoint = pattern.CenterMark

            Console.WriteLine("rect={0:F1},{1:F1},{2:F1},{3:F1}", _rect.St.X, _rect.St.Y, _rect.Ed.X, _rect.Ed.Y)
            Console.WriteLine("mark={0:F1},{1:F1}", _mark.X, _mark.Y)
        End Sub
    End Class
End Namespace

出力結果:
Copy imageCopy
User.SampleCode.Basic.MakePatternRevision
MakePatternRevision=0
rect=134.40,74.50,181.10,169.80
mark=33.20,65.00
MakePatternRevision=1
rect=134.00,75.00,181.00,170.00
mark=33.60,64.50
MakePatternRevision=0
rect=134.40,74.50,181.10,169.80
mark=33.20,65.00

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also