FIE 画像オブジェクトへのアタッチ
Namespace: FVIL.DataAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public virtual void AttachFIE( FHANDLE hImage, int channel, Rectangle region ) |
Visual Basic |
---|
Public Overridable Sub AttachFIE ( hImage As FHANDLE, channel As Integer, region As Rectangle ) |
Parameters
- hImage
- Type: fvalgcli..::..FHANDLE
FIE ハンドル (画像オブジェクト)
- channel
- Type: System..::..Int32
チャネル指標 [-1:全て, 0~:単一チャネル]
- region
- Type: System.Drawing..::..Rectangle
範囲 (始点・幅・高さが 0 の Rectangle を指定すると全面を参照します。)
Remarks
指定された FIE 画像オブジェクトの指定範囲を参照するチャイルド画像を生成します。
channel に -1 が指定された時は全てのチャネルを参照します。
0 以上の値が指定された場合は単一のチャネルを参照します。
全面を参照する場合は、Rectangle の初期値(始点・幅・高さが全て 0)を region に指定してください。
ここで作成したチャイルド画像は、このクラスの Dispose メソッドで解放されます。 チャイルド画像を使用する間、参照先の FIE 画像オブジェクトを解放しないでください。
FIE ハンドルとは FIE ライブラリで使用されるデータ構造のことです。 FIE ハンドルはいくつかの種類がありますが、ここでは F_OBJID_IMG_ROOT または F_OBJID_IMG_CHILD のことを意味します。 詳しくは FIE ライブラリ説明書をご参照ください。
処理に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
1 | FVIL.ErrorCode.FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
Examples
ソースコード:
C# | Copy |
---|---|
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 AttachFIE() { int status = 0; fvalgcli.FHANDLE hImage = IntPtr.Zero; try { // 1) FIE 画像オブジェクトの生成. status = fvalgcli.api.fnFIE_load_img_file(Defs.TestImageDir + "/floppy_RGB.jpg", ref hImage, fvalgcli.f_color_img_type.F_COLOR_IMG_TYPE_UC8); if (status != 0) throw new fvalgcli.FvException(status); using (var src = new FVIL.Data.CFviImage()) { int channels = fvalgcli.api.fnFIE_img_get_channels(hImage); for (int ch = 0; ch < channels; ch++) { var window = new System.Drawing.Rectangle(20, 30, 200, 120); // 2) FIE 画像オブジェクトへのアタッチ. src.AttachFIE(hImage, ch, window); // -) 確認用. src.Save(Defs.ResultDir + string.Format("/Image.AttachFIE-{0}.png", ch)); } } } catch (System.Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } finally { // E) 手動で解放する必要があります. hImage.Dispose(); } } } } |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |