コンストラクタ (画像サイズ指定)
Namespace: FVIL.DataAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public CFviPattern( int horz, int vert, ImageType type, int ch, int alloc_option ) |
Visual Basic |
---|
Public Sub New ( horz As Integer, vert As Integer, type As ImageType, ch As Integer, alloc_option As Integer ) |
Parameters
- horz
- Type: System..::..Int32
画像領域の横方向サイズ (pixel) [1~]
- vert
- Type: System..::..Int32
画像領域の縦方向サイズ (pixel) [1~]
- type
- Type: FVIL..::..ImageType
画像種別
- ch
- Type: System..::..Int32
チャネル数 [1~16]
- alloc_option
- Type: System..::..Int32
オプション [0:既定の動作、1:DIBを使用しない]
Remarks
指定されたサイズで画像データ領域を確保してインスタンスを構築します。
既定の動作では、指定された型(type)が BIN,UC8,RGB24,RGB32 且つ チャネル数(ch)が 1 のとき、 Windows の CreateDIBSection 関数を使用して領域を確保しますが、 CreateDIBSection によって 2GB を超えるような大きいサイズの領域を確保できない場合があります。 64bit アプリケーションでも、この挙動が見られます。 alloc_option に 1 を指定すると、CreateDIBSection を使用しませんので、この制限を回避できます。
また、このオブジェクトがビットマップハンドルを保有する為、 10,000 個のインスタンスを作成すると GDI リソースが枯渇します。 上限は流動的で、その他で GDI リソースを使用していると 10,000 個より少ない値で枯渇することになります。 このインスタンスを大量に生成する必要がある場合は、 前述と同様に alloc_option に 1 を指定し、CreateDIBSection を使用しないようにしてください。
確保に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
1 | FVIL.ErrorCode.FAILED_TO_ALLOCATE | メモリの確保に失敗しました。 |
17 | FVIL.ErrorCode.INVALID_IMAGESIZE | 引数に指定された画像サイズが不正です。 |
16 | FVIL.ErrorCode.INVALID_IMAGETYPE | 引数に指定された画像種別が不正です。 |
18 | FVIL.ErrorCode.INVALID_CHANNEL | 引数に指定されたチャネル数が不正です。 |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |