Image Buffers
データ構造
画像データはImageBufferオブジェクト(IC4_IMAGE_BUFFER)でやり取りされます。 詳細...
| struct | IC4_ALLOCATOR_CALLBACKS ImageBuffer用のカスタムアロケータを設定するための関数ポインタを格納します。 詳細... |
| struct | IC4_BUFFER_POOL_CONFIG IC4_BUFFER_POOLの動作を設定します。 詳細... |
| struct | IC4_BUFFERPOOL_ALLOCATION_OPTIONS BufferPoolからImageBufferを要求する際のメモリ確保を設定するためのオプションを格納します。 詳細... |
| struct | IC4_FRAME_METADATA フレームメタデータを格納する構造体です。 詳細... |
| struct | IC4_IMAGE_TYPE ピクセルフォーマットと画像サイズを含む画像タイプを表します。 詳細... |
| struct | IC4_BUFFER_POOL BufferPoolはプログラムで使用する追加のImageBufferをメモリ確保できるようにします。 詳細... |
| struct | IC4_IMAGE_BUFFER ImageBufferを表します。 詳細... |
型定義
| typedef void(* | ic4_imagebuffer_memory_release) (void *ptr, size_t buffer_size, void *user_ptr) ic4_imagebuffer_wrap_memoryで作成されたImageBufferが破棄され、それを通じて画像データにアクセスできなくなったときに呼び出されるコールバック関数を定義します。 |
列挙型
関数
| bool | ic4_bufferpool_create (struct IC4_BUFFER_POOL **ppPool, const struct IC4_BUFFER_POOL_CONFIG *config) 新しいBufferPoolを作成します。 |
| struct IC4_BUFFER_POOL * | ic4_bufferpool_ref (struct IC4_BUFFER_POOL *pPool) BufferPoolの内部参照カウントを1つ増やします。 |
| void | ic4_bufferpool_unref (struct IC4_BUFFER_POOL *pPool) BufferPoolの内部参照カウントを1つ減らします。 |
| bool | ic4_bufferpool_get_buffer (struct IC4_BUFFER_POOL *pPool, const struct IC4_IMAGE_TYPE *image_type, const struct IC4_BUFFERPOOL_ALLOCATION_OPTIONS *options, struct IC4_IMAGE_BUFFER **ppImageBuffer) BufferPoolからバッファを取得します。 |
| struct IC4_IMAGE_BUFFER * | ic4_imagebuffer_ref (struct IC4_IMAGE_BUFFER *pImageBuffer) ImageBufferの内部参照カウントを1つ増やします。 |
| void | ic4_imagebuffer_unref (struct IC4_IMAGE_BUFFER *pImageBuffer) ImageBufferの内部参照カウントを1つ減らします。 |
| void * | ic4_imagebuffer_get_ptr (const struct IC4_IMAGE_BUFFER *pImageBuffer) ImageBufferが管理するデータへのポインタを返します。 |
| ptrdiff_t | ic4_imagebuffer_get_pitch (const struct IC4_IMAGE_BUFFER *pImageBuffer) ImageBufferのピッチを返します。 |
| size_t | ic4_imagebuffer_get_buffer_size (const struct IC4_IMAGE_BUFFER *pImageBuffer) ImageBufferのサイズを返します。 |
| bool | ic4_imagebuffer_get_image_type (const struct IC4_IMAGE_BUFFER *pImageBuffer, struct IC4_IMAGE_TYPE *image_type) ImageBufferの画像データタイプに関する情報を照会します。 |
| bool | ic4_imagebuffer_get_metadata (const struct IC4_IMAGE_BUFFER *pImageBuffer, struct IC4_FRAME_METADATA *metadata) ImageBufferオブジェクトからメタデータを取得します。 |
| bool | ic4_imagebuffer_copy (const struct IC4_IMAGE_BUFFER *source, struct IC4_IMAGE_BUFFER *destination, unsigned int flags) あるImageBufferの内容を別のImageBufferにコピーします。 |
| bool | ic4_imagebuffer_is_writable (const struct IC4_IMAGE_BUFFER *buffer) ImageBufferオブジェクトが(安全に)書き込み可能かどうかを確認します。 |
| bool | ic4_imagebuffer_wrap_memory (struct IC4_IMAGE_BUFFER **ppBuffer, void *data, size_t buffer_size, ptrdiff_t pitch, const struct IC4_IMAGE_TYPE *image_type, ic4_imagebuffer_memory_release on_release, void *on_release_user_ptr) 外部メモリを画像データの格納領域として使用し、ImageBufferオブジェクトを作成します。 |
| const char * | ic4_pixelformat_tostring (enum IC4_PIXEL_FORMAT pixel_format) ピクセルフォーマットの名前を返します。 |
| size_t | ic4_pixelformat_bpp (enum IC4_PIXEL_FORMAT pixel_format) ピクセルフォーマットのビット数(bits per pixel)を返します。 |
| bool | ic4_imagetype_tostring (const struct IC4_IMAGE_TYPE *image_type, char *buffer, size_t *buffer_size) 指定した画像タイプを文字列表現に変換します。 |
詳細説明
画像データはImageBufferオブジェクト(IC4_IMAGE_BUFFER)でやり取りされます。
ImageBufferオブジェクトは、本ライブラリのさまざまなSink種別のいずれかを使用すると自動的に作成されます。
ImageBufferオブジェクトは参照カウント方式です。ImageBufferオブジェクトをプログラムの複数の部分で共有するには、ic4_imagebuffer_ref()を使用します。参照が不要になったらic4_imagebuffer_unref()を呼び出してください。
参照カウントがゼロになると、ImageBufferは再利用のために供給元へ戻されます。例えば、ic4_queuesink_pop_output_buffer()から取得したImageBufferは再度キューに戻されます。
型定義ドキュメント
◆ ic4_imagebuffer_memory_release
| typedef void(* ic4_imagebuffer_memory_release) (void *ptr, size_t buffer_size, void *user_ptr) |
ic4_imagebuffer_wrap_memoryで作成されたImageBufferが破棄され、それを通じて画像データにアクセスできなくなったときに呼び出されるコールバック関数を定義します。
- パラメータ
-
[in] ptr ic4_imagebuffer_wrap_memoryにdataとして渡された画像データへのポインタ [in] buffer_size ic4_imagebuffer_wrap_memoryにbuffer_sizeとして渡されたバッファサイズ [in] user_ptr ImageBuffer作成時に指定されたon_release_user_ptrパラメータ。
列挙型ドキュメント
◆ IC4_IMAGEBUFFER_COPY_FLAGS
ic4_imagebuffer_copy()の動作を設定するためのオプションを格納します。
| 列挙子 | |
|---|---|
| IC4_IMAGEBUFFER_COPY_SKIP_IMAGE | コピー時に画像データをスキップするようic4_imagebuffer_copy()に指示します。
|
| IC4_IMAGEBUFFER_COPY_SKIP_CHUNKDATA | チャンクデータをコピーしないようic4_imagebuffer_copy()に指示します。 チャンクデータが大きく、コピー先フレームで不要な場合に役立ちます。 |
◆ IC4_PIXEL_FORMAT
| enum IC4_PIXEL_FORMAT |
ピクセルフォーマットは画像内のピクセルの表現方法を定義します。
| 列挙子 | |
|---|---|
| IC4_PIXEL_FORMAT_Unspecified | 未指定のピクセルフォーマット。画像タイプを部分的に定義するために使用します。 |
| IC4_PIXEL_FORMAT_Mono8 | モノクロ8ビット。 |
| IC4_PIXEL_FORMAT_Mono10p | モノクロ10ビットパック。 |
| IC4_PIXEL_FORMAT_Mono12p | モノクロ12ビットパック。 |
| IC4_PIXEL_FORMAT_Mono16 | モノクロ16ビット。 |
| IC4_PIXEL_FORMAT_BayerBG8 | Bayer Blue-Green 8ビット。 |
| IC4_PIXEL_FORMAT_BayerBG10p | Bayer Blue-Green 10ビットパック。 |
| IC4_PIXEL_FORMAT_BayerBG12p | Bayer Blue-Green 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerBG16 | Bayer Blue-Green 16ビット。 |
| IC4_PIXEL_FORMAT_BayerGB8 | Bayer Green-Blue 8ビット。 |
| IC4_PIXEL_FORMAT_BayerGB10p | Bayer Green-Blue 10ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGB12p | Bayer Green-Blue 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGB16 | Bayer Green-Blue 16ビット。 |
| IC4_PIXEL_FORMAT_BayerGR8 | Bayer Green-Red 8ビット。 |
| IC4_PIXEL_FORMAT_BayerGR10p | Bayer Green-Red 10ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGR12p | Bayer Green-Red 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGR16 | Bayer Green-Red 16ビット。 |
| IC4_PIXEL_FORMAT_BayerRG8 | Bayer Red-Green 8ビット。 |
| IC4_PIXEL_FORMAT_BayerRG10p | Bayer Red-Green 10ビットパック。 |
| IC4_PIXEL_FORMAT_BayerRG12p | Bayer Red-Green 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerRG16 | Bayer Red-Green 16ビット。 |
| IC4_PIXEL_FORMAT_BGRa8 | Blue-Green-Red-alpha 8ビット。 |
| IC4_PIXEL_FORMAT_BGRa16 | Blue-Green-Red-alpha 16ビット。 |
| IC4_PIXEL_FORMAT_BGR8 | Blue-Green-Red 8ビット。 |
| IC4_PIXEL_FORMAT_Mono12Packed | GigE Vision固有のフォーマット、モノクロ12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerBG12Packed | GigE Vision固有のフォーマット、Bayer Blue-Green 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGB12Packed | GigE Vision固有のフォーマット、Bayer Green-Blue 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerGR12Packed | GigE Vision固有のフォーマット、Bayer Green-Red 12ビットパック。 |
| IC4_PIXEL_FORMAT_BayerRG12Packed | GigE Vision固有のフォーマット、Bayer Red-Green 12ビットパック。 |
| IC4_PIXEL_FORMAT_YUV422_8 | YUV 4:2:2 8ビット。 |
| IC4_PIXEL_FORMAT_YCbCr422_8 | YCbCr 4:2:2 8ビット。 |
| IC4_PIXEL_FORMAT_YCbCr411_8_CbYYCrYY | YCbCr 4:1:1 8ビット (CbYYCrYY) |
| IC4_PIXEL_FORMAT_YCbCr411_8 | YCbCr 4:1:1 8ビット (YYCbYYCr) |
| IC4_PIXEL_FORMAT_AnyBayer8 | 任意の8ビットBayerフォーマットを選択するための仮想ピクセルフォーマット値。 カメラのIC4_PROPID_PIXEL_FORMATをこの値に設定すると、8ビットBayerピクセルフォーマットIC4_PIXEL_FORMAT_BayerBG8、IC4_PIXEL_FORMAT_BayerGB8、IC4_PIXEL_FORMAT_BayerRG8、IC4_PIXEL_FORMAT_BayerGR8のいずれかが自動的に選択されます。 |
| IC4_PIXEL_FORMAT_AnyBayer10p | 任意の10ビットパックBayerフォーマットを選択するための仮想ピクセルフォーマット値。 カメラのIC4_PROPID_PIXEL_FORMATをこの値に設定すると、10ビットパックBayerピクセルフォーマットIC4_PIXEL_FORMAT_BayerBG10p、IC4_PIXEL_FORMAT_BayerGB10p、IC4_PIXEL_FORMAT_BayerRG10p、IC4_PIXEL_FORMAT_BayerGR10pのいずれかが自動的に選択されます。 |
| IC4_PIXEL_FORMAT_AnyBayer12p | 任意の12ビットパックBayerフォーマットを選択するための仮想ピクセルフォーマット値。 カメラのIC4_PROPID_PIXEL_FORMATをこの値に設定すると、12ビットパックBayerピクセルフォーマット IC4_PIXEL_FORMAT_BayerBG12p, IC4_PIXEL_FORMAT_BayerGB12p, IC4_PIXEL_FORMAT_BayerRG12p, IC4_PIXEL_FORMAT_BayerGR12p, IC4_PIXEL_FORMAT_BayerBG12Packed, IC4_PIXEL_FORMAT_BayerGB12Packed, IC4_PIXEL_FORMAT_BayerRG12Packed、IC4_PIXEL_FORMAT_BayerGR12Packedのいずれかが自動的に選択されます。 |
| IC4_PIXEL_FORMAT_AnyBayer16 | 任意の16ビットBayerフォーマットを選択するための仮想ピクセルフォーマット値。 カメラのIC4_PROPID_PIXEL_FORMATをこの値に設定すると、16ビットBayerピクセルフォーマットIC4_PIXEL_FORMAT_BayerBG16、IC4_PIXEL_FORMAT_BayerGB16、IC4_PIXEL_FORMAT_BayerRG16、IC4_PIXEL_FORMAT_BayerGR16のいずれかが自動的に選択されます。 |
| IC4_PIXEL_FORMAT_Invalid | 無効なピクセルフォーマット。 |
関数ドキュメント
◆ ic4_bufferpool_create()
| bool ic4_bufferpool_create | ( | struct IC4_BUFFER_POOL ** | ppPool, |
| const struct IC4_BUFFER_POOL_CONFIG * | config | ||
| ) |
新しいBufferPoolを作成します。
- パラメータ
-
[in] ppPool 新しいBufferPoolを受け取るBufferPoolハンドルへのポインタ。BufferPoolが不要になったら、ic4_bufferpool_unref()を使用してオブジェクト参照を解放してください。 [in] config BufferPool設定を格納する構造体へのポインタ
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_bufferpool_get_buffer()
| bool ic4_bufferpool_get_buffer | ( | struct IC4_BUFFER_POOL * | pPool, |
| const struct IC4_IMAGE_TYPE * | image_type, | ||
| const struct IC4_BUFFERPOOL_ALLOCATION_OPTIONS * | options, | ||
| struct IC4_IMAGE_BUFFER ** | ppImageBuffer | ||
| ) |
BufferPoolからバッファを取得します。
バッファは新しくメモリ確保されるか、BufferPoolのバッファキャッシュから取得されます。
- パラメータ
-
[in] pPool BufferPool [in] image_type 要求するバッファの画像タイプ [in] options 詳細なメモリ確保オプションを指定するIC4_BUFFERPOOL_ALLOCATION_OPTIONS構造体へのポインタ。
デフォルトのメモリ確保パラメータを使用する場合はNULLを指定できます。[out] ppImageBuffer バッファを受け取るImageBufferハンドルへのポインタ。
バッファが不要になったら、ic4_imagebuffer_unref()を使用してオブジェクト参照を解放してください。
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_bufferpool_ref()
| struct IC4_BUFFER_POOL * ic4_bufferpool_ref | ( | struct IC4_BUFFER_POOL * | pPool | ) |
BufferPoolの内部参照カウントを1つ増やします。
- パラメータ
-
[in] pPool BufferPoolへのポインタ
- 戻り値
- pPoolで渡されたポインタ
- 備考
- pPoolが
NULLの場合、この関数はNULLを返します。エラー値は設定されません。
◆ ic4_bufferpool_unref()
| void ic4_bufferpool_unref | ( | struct IC4_BUFFER_POOL * | pPool | ) |
BufferPoolの内部参照カウントを1つ減らします。
参照カウントがゼロになると、オブジェクトは破棄されます。
- パラメータ
-
[in] pPool BufferPoolへのポインタ
- 備考
- pPoolが
NULLの場合、この関数は何も行いません。エラー値は設定されません。
◆ ic4_imagebuffer_copy()
| bool ic4_imagebuffer_copy | ( | const struct IC4_IMAGE_BUFFER * | source, |
| struct IC4_IMAGE_BUFFER * | destination, | ||
| unsigned int | flags | ||
| ) |
あるImageBufferの内容を別のImageBufferにコピーします。
- パラメータ
-
source コピー元のバッファ destination コピー先のバッファ flags IC4_IMAGEBUFFER_COPY_FLAGSの値のビット単位の組み合わせ。
- 備考
sourceとdestinationの画像のピクセルフォーマットが異なる場合、画像は変換されます。例えば、sourceのピクセルフォーマットがIC4_PIXEL_FORMAT_BayerRG8で、destinationのピクセルフォーマットがIC4_PIXEL_FORMAT_BGR8の場合、デモザイク処理によってカラー画像が生成されます。
flagsにIC4_IMAGEBUFFER_COPY_SKIP_IMAGEが含まれる場合、この関数は画像データをコピーしません。この場合、メタデータのみをコピーし、画像のコピー処理はプログラム定義のアルゴリズムで行えます。
flagsにIC4_IMAGEBUFFER_COPY_SKIP_CHUNKDATAが含まれる場合、この関数はsourceに含まれるチャンクデータをコピーしません。チャンクデータが大きく不要な場合に役立ちます。
- 注意
sourceとdestinationの幅または高さが異なる場合、この関数は失敗し、エラー値はIC4_ERROR_CONVERSION_NOT_SUPPORTEDに設定されます。
要求された変換に利用可能なアルゴリズムがない場合、この関数は失敗し、エラー値はIC4_ERROR_CONVERSION_NOT_SUPPORTEDに設定されます。
destinationフレームが書き込み可能でない場合、この関数は失敗し、エラー値はIC4_ERROR_INVALID_OPERATIONに設定されます。
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagebuffer_get_buffer_size()
| size_t ic4_imagebuffer_get_buffer_size | ( | const struct IC4_IMAGE_BUFFER * | pImageBuffer | ) |
ImageBufferのサイズを返します。
- パラメータ
-
[in] pImageBuffer ImageBuffer
- 戻り値
- このImageBufferのサイズ。エラーが発生した場合は
0。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagebuffer_get_image_type()
| bool ic4_imagebuffer_get_image_type | ( | const struct IC4_IMAGE_BUFFER * | pImageBuffer, |
| struct IC4_IMAGE_TYPE * | image_type | ||
| ) |
ImageBufferの画像データタイプに関する情報を照会します。
- パラメータ
-
[in] pImageBuffer ImageBuffer [out] image_type 画像データタイプ情報を受け取るIC4_IMAGE_TYPE構造体。
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagebuffer_get_metadata()
| bool ic4_imagebuffer_get_metadata | ( | const struct IC4_IMAGE_BUFFER * | pImageBuffer, |
| struct IC4_FRAME_METADATA * | metadata | ||
| ) |
ImageBufferオブジェクトからメタデータを取得します。
- パラメータ
-
[in] pImageBuffer ImageBuffer [out] metadata メタデータを受け取るIC4_FRAME_METADATA構造体。
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagebuffer_get_pitch()
| ptrdiff_t ic4_imagebuffer_get_pitch | ( | const struct IC4_IMAGE_BUFFER * | pImageBuffer | ) |
ImageBufferのピッチを返します。
ピッチとは、連続する2つの行の開始メモリ位置間の距離です。
- パラメータ
-
[in] pImageBuffer ImageBuffer
- 戻り値
- このImageBufferのピッチ。エラーが発生した場合は
0。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagebuffer_get_ptr()
| void * ic4_imagebuffer_get_ptr | ( | const struct IC4_IMAGE_BUFFER * | pImageBuffer | ) |
ImageBufferが管理するデータへのポインタを返します。
- パラメータ
-
[in] pImageBuffer ImageBuffer
- 戻り値
- ImageBufferに含まれる画像データへのポインタ。
エラーが発生した場合はNULL。エラー情報を照会するにはic4_get_last_error()を使用してください。
- 備考
- 返されたポインタが指すメモリは、ImageBufferオブジェクトが存在する限り有効です。
◆ ic4_imagebuffer_is_writable()
| bool ic4_imagebuffer_is_writable | ( | const struct IC4_IMAGE_BUFFER * | buffer | ) |
ImageBufferオブジェクトが(安全に)書き込み可能かどうかを確認します。
状況によっては、ImageBufferオブジェクトは、そのハンドルを保持するアプリケーションとライブラリの間で共有されます。例えば、ImageBufferはDisplayやVideoWriterと共有されることがあります。
共有されたバッファは安全に書き込みできません。共有されているバッファに書き込むと、予期しない動作につながる可能性があります。例えば、並行して実行されている処理の結果に、変更が部分的に現れることがあります。
ImageBufferをic4_display_display_buffer()やic4_videowriter_add_frame()などの関数に渡すと、バッファが共有状態になる可能性があります。
- 注意
- この関数は、バッファがライブラリの他の部分と共有されているかどうかのみを確認します。プログラムの複数の部分が同時にバッファのメモリにアクセスしているかどうかを追跡するのは、
プログラムの責任です。
- パラメータ
-
[in] buffer ImageBufferオブジェクト
- 注意
- この関数は、アプリケーションの複数の部分間での共有を追跡しません。アプリケーションがImageBufferへの複数の参照を所有している場合、またはそのバッファのメモリアドレスを複数のスレッド間で共有している場合、データ競合を回避するのはアプリケーションの責任です。
- 戻り値
- ImageBufferがライブラリのどの部分とも共有されておらず、したがって安全に書き込み可能な場合は
true。
ImageBufferが共有されており、したがって書き込むべきでない場合はfalse。
◆ ic4_imagebuffer_ref()
| struct IC4_IMAGE_BUFFER * ic4_imagebuffer_ref | ( | struct IC4_IMAGE_BUFFER * | pImageBuffer | ) |
ImageBufferの内部参照カウントを1つ増やします。
- パラメータ
-
[in] pImageBuffer ImageBuffer
- 戻り値
- pImageBufferで渡されたポインタ
- 備考
- pImageBufferが
NULLの場合、この関数はNULLを返します。エラー値は設定されません。
◆ ic4_imagebuffer_unref()
| void ic4_imagebuffer_unref | ( | struct IC4_IMAGE_BUFFER * | pImageBuffer | ) |
ImageBufferの内部参照カウントを1つ減らします。
参照カウントがゼロになると、ImageBufferは再利用のために供給元へ戻されます。
- パラメータ
-
[in] pImageBuffer ImageBuffer
- 備考
- pImageBufferが
NULLの場合、この関数は何も行いません。エラー値は設定されません。
◆ ic4_imagebuffer_wrap_memory()
| bool ic4_imagebuffer_wrap_memory | ( | struct IC4_IMAGE_BUFFER ** | ppBuffer, |
| void * | data, | ||
| size_t | buffer_size, | ||
| ptrdiff_t | pitch, | ||
| const struct IC4_IMAGE_TYPE * | image_type, | ||
| ic4_imagebuffer_memory_release | on_release, | ||
| void * | on_release_user_ptr | ||
| ) |
外部メモリを画像データの格納領域として使用し、ImageBufferオブジェクトを作成します。
この関数は、サードパーティライブラリのバッファに画像データをコピーする際に役立ちます。
- サードパーティライブラリで画像オブジェクトを作成します
- ic4_imagebuffer_wrap_memory()を使用して、サードパーティライブラリの画像データをIC4_IMAGE_BUFFERでラップします。
- ic4_imagebuffer_copy()を使用して、既存のImageBufferオブジェクトからサードパーティのImageBufferにデータをコピーします。
- パラメータ
-
[out] ppBuffer 新しいバッファオブジェクトを受け取るImageBufferハンドルへのポインタ。
バッファが不要になったら、ic4_imagebuffer_unref()を使用してオブジェクト参照を解放してください。[in] data ImageBufferオブジェクトが画像データとして使用するメモリ領域へのポインタ [in] buffer_size dataが指すメモリ領域のサイズ [in] pitch 画像データの連続する2つの行のメモリアドレスの差 [in] image_type ImageBufferに格納する画像のタイプ [in] on_release ImageBufferオブジェクトが破棄されたときに呼び出されるコールバック関数への任意のポインタ。
これは、ImageBufferが指すメモリをプログラムが追跡し、ImageBufferオブジェクトが存在しなくなったときに解放する必要がある場合に役立ちます。
ImageBufferのライフタイムは、ic4_display_display_bufferやic4_videowriter_add_frameなどのAPI関数と共有されると、そのハンドルの存在を超えて延長される可能性があります。[in] on_release_user_ptr on_releaseを呼び出す際に渡されるユーザーポインタ。
- 戻り値
- 成功した場合は
true、それ以外の場合はfalse。
エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_imagetype_tostring()
| bool ic4_imagetype_tostring | ( | const struct IC4_IMAGE_TYPE * | image_type, |
| char * | buffer, | ||
| size_t * | buffer_size | ||
| ) |
指定した画像タイプを文字列表現に変換します。
- パラメータ
-
[out] image_type エラーコードを受け取るIC4_IMAGE_TYPE値へのポインタ。 [out] buffer 文字列を受け取る文字配列へのポインタ。
初期配列をメモリ確保せずに必要な領域サイズを調べるには、このパラメータをNULLにできます。[in,out] buffer_size bufferが指す配列の長さを示す size_tへのポインタ。
この関数は、文字列表現の格納に必要な実際の文字数を常に書き込みます。
- 戻り値
- 成功した場合は
true。 -
image_typeが
NULLの場合、この関数は失敗しfalseを返します。 -
bufferが
NULLでなく、*buffer_sizeが文字列の格納に必要なバイト数より小さい場合、この関数は失敗しfalseを返します。 - エラー情報を照会するにはic4_get_last_error()を使用してください。
◆ ic4_pixelformat_bpp()
| size_t ic4_pixelformat_bpp | ( | enum IC4_PIXEL_FORMAT | pixel_format | ) |
ピクセルフォーマットのビット数(bits per pixel)を返します。
- パラメータ
-
[in] pixel_format ピクセルフォーマット
- 戻り値
- 指定したピクセルフォーマットで1ピクセルを格納するのに必要なビット数。
ピクセルフォーマットのビット数が不明な場合、この関数は0を返します。
◆ ic4_pixelformat_tostring()
| const char * ic4_pixelformat_tostring | ( | enum IC4_PIXEL_FORMAT | pixel_format | ) |
ピクセルフォーマットの名前を返します。
- パラメータ
-
[in] pixel_format ピクセルフォーマット
- 戻り値
- ピクセルフォーマットの名前を含むNULL終端文字列へのポインタ。
戻り値が指すメモリは常に有効で、解放する必要はありません。
渡されたピクセルフォーマットが不明な場合、この関数はNULLを返します。


