Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public virtual int AllocateOption { get; set; } |
Visual Basic |
---|
Public Overridable Property AllocateOption As Integer Get Set |
Return Value
Type: Int32
内部で画像オブジェクトの確保を行う際のオプションの設定または取得を行います。
このクラスの派生クラスは、ここに設定された値を
SetSize(Int32, Int32, ImageType, Int32, Int32)
option 引数に指定します。
Remarks
画像オブジェクトは、既定では BIN,UC8,RGB24,RGB32 の時、
Win32 の CreateDIBSection を使用して画像メモリを確保し、
この時得られたビットマップハンドルを保有します。
しかし、ビットマップハンドルなどの GDI リソースは保有する数に限りがあるので、
ビットマップハンドルを保有した画像オブジェクトを大量に生成すると、
GDI リソースを消費し、枯渇すると O/S の描画処理が行えなくなります。
上限は、約 10,000 個です。
(GDI リソースは表示機能でも使用しているので、アプリケーションの構成によって上限は変動します。)
これを回避するには、画像オブジェクトの SetSize メソッドに option=1 を指定します。
そうすると画像オブジェクトは CreateDIBSection を使用しないので、
物理メモリが許す限りインスタンスを生成できます。
許容値:
値 | 意味 |
---|---|
0 | 既定の動作 |
1 | DIB を使用しない |
設定に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
11 | FVIL.ErrorCode.INVALID_PARAMETER | 指定された値が不正です。 |
Examples
画像処理クラスの Validate メソッドの内部で行われる SetSize に option=1 を指定する例です。
C# | Copy |
---|---|
FVIL.Data.CFviImage src = FVIL.File.Function.LoadImageFile("./test.bmp"); FVIL.Data.CFviImage dst = new FVIL.Data.CFviImage(); FVIL.Filter.CFviSobelFilter parser = new FVIL.Filter.CFviSobelFilter(src, dst); parser.AllocateOption = 1; // 1: DIBを使用しない. parser.Validate(); // dst に対して SetSize を行う際に option=1 を指定する. |
サンプルコード (2):
ビデオ入力クラスの ChangeImageSize メソッドの内部で行われる SetSize に option=1 を指定する例です。
C# | Copy |
---|---|
FVIL.Data.CFviImage src = new FVIL.Data.CFviImage(); FVIL.Video.CFviVideoFVC06 video = FVIL.Video.CFviVideoFVC06(); video.Open( -1, 0 , -1 ); video.LoadIniFile( "C:/FVC06_IK-TF7C.ini" ); video.AllocateOption = 1; // 1: DIBを使用しない. video.ChangeImageSize(src); // src に対して SetSize を行う際に option=1 を指定する. |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |