アタッチ (単一チャネル指定)

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

Syntax

C#
public virtual void Attach(
	CFviImage image,
	int channel
)
Visual Basic
Public Overridable Sub Attach ( 
	image As CFviImage,
	channel As Integer
)

Parameters

image
Type: FVIL.Data..::..CFviImage
対象の画像オブジェクト
channel
Type: System..::..Int32
対象のチャネル指標 [0~(image.Channel-1)]

Remarks

指定された画像オブジェクトの指定チャネルにアタッチします。

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


エラーコード:
ErrorCode メンバ内容
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。
1FVIL.ErrorCode.NOT_ALLOCATED画像アドレスに IntPtr.Zero が指定されています。
17FVIL.ErrorCode.INVALID_IMAGESIZE画像サイズに 0 が指定されています。
16FVIL.ErrorCode.INVALID_IMAGETYPE画像種別が無効です。
18FVIL.ErrorCode.INVALID_CHANNELチャネル数が無効です。

Examples

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

namespace User.SampleCode.Data
{
    public partial class Image
    {
        [FvPluginExecute]
        public void Attach2()
        {
            try
            {
                using (var src = new FVIL.Data.CFviImage())
                using (var act = new FVIL.Data.CFviImage())
                using (var dst = new FVIL.Data.CFviImage())
                {
                    // (1) 画像生成.
                    src.Load(Defs.TestImageDir + "/floppy_RGB.jpg");

                    var channels = src.Channel;
                    for (int ch = 0; ch < channels; ch++)
                    {
                        // (2) 画像オブジェクトへのアタッチ.
                        act.Attach(src, ch);

                        // -) 何らかの処理.
                        {
                            act.Window = new System.Drawing.Rectangle(20, 30, 200, 120);

                            var sobel = new FVIL.Filter.CFviSobelFilter(act, dst);
                            sobel.CalcMode = FVIL.Filter.SobelCalcMode.SQRTMode;
                            sobel.BorderMode = FVIL.BorderMode.Continuous;
                            sobel.BorderValue = 0.0;
                            sobel.Validate();
                            sobel.Execute();
                        }

                        // -) 確認用.
                        act.Save(Defs.ResultDir + string.Format("/Image.Attach2-act-{0}.png", ch));
                        dst.Save(Defs.ResultDir + string.Format("/Image.Attach2-dst-{0}.png", ch));
                    }
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
    }
}

Exceptions

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

See Also