コンストラクタ (画像サイズ指定)

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

Syntax

C#
public CFviImage(
	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~] ※ 0 を指定すると未確保の状態で構築します。
vert
Type: System..::..Int32
画像領域の縦方向サイズ (pixel) [1~] ※ 0 を指定すると未確保の状態で構築します。
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 メンバ内容
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリの確保に失敗しました。
17FVIL.ErrorCode.INVALID_IMAGESIZE引数に指定された画像サイズが不正です。
16FVIL.ErrorCode.INVALID_IMAGETYPE引数に指定された画像種別が不正です。
18FVIL.ErrorCode.INVALID_CHANNEL引数に指定されたチャネル数が不正です。

Exceptions

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

See Also