ルート画像は実際に画像メモリを保持するオブジェクトであり、幅、高さ、種別等の情報を保持します。 チャイルド画像は実際には 画像メモリを保持しない オブジェクトで有り、ルート画像と関連づけて、 そのルート画像の一部分のみを指定します。 1個のルート画像に対して、複数のチャイルド画像が割り当て可能です。 なお、ここで示している幅、高さ、等は全て内部的な情報であり、カプセル化されています。 そのため、ユーザーがこれらの値を取得する際は、getter関数群を使用する必要があります。 また、本画像オブジェクトはチャネル(レイヤ)の概念を持っており、1〜16チャネルの間で任意の チャネル数分の画像メモリを持つことができます。 但し、各チャネルの画像メモリは全て同じ種別・サイズであるという制限があります。 この制限はチャネルが主にカラー画像の処理に使用されることを想定しての設定であり、 UCHARの濃度値とDOUBLEの重みというような異なる型の情報を扱いたい場合は、 複数の画像オブジェクトのインスタンスにて実現してください。
// エラー処理は省略しているので注意して下さい。 #include "fie.h" void set_x3y5( FHANDLE himg ) { SHORT *adrs; INT_PTR step; // 画像の(0,0)のアドレスを取得 adrs = (SHORT*)fnFIE_img_get_ch_adrs( himg, 0 ); // y座標を+1するために必要な移動量を取得 step = fnFIE_img_get_step( himg ); // 座標(3,5) の画素値を100に *(adrs + step*5 + 3) = 100; } INT main() { FHANDLE himg, himg_child; // FIEライブラリの使用前に必ずコールする必要があります。 fnFIE_setup(); // 100x100 のルート画像を確保 himg = fnFIE_img_root_alloc( F_IMG_S16, 1, 100, 100 ); // ルート画像の(10,10)-(49,49)をチャイルド画像として割り当て himg_child = fnFIE_img_child_alloc( himg, 10, 10, 40, 40 ); // ルート画像の座標(3,5)を100にセット set_x3y5( himg ); // チャイルド画像の座標(3,5) (==ルート画像の座標系で(13,15)) を100にセット set_x3y5( himg_child ); fnFIE_free_object( himg_child ); fnFIE_free_object( himg ); // 終了処理 fnFIE_teardown(); return 0; }
VOID fnFIE_img_get_binadrs( FHANDLE himg, UINT** adrs, INT *bitpos )
// エラー処理は省略しているので注意して下さい。 #include "fie.h" INT main() { FHANDLE himg, himg_child; UINT *adrs; INT bpos; INT_PTR step; // FIEライブラリの使用前に必ずコールする必要があります。 fnFIE_setup(); // 100x100 のルート画像を確保します himg = fnFIE_img_root_alloc( F_IMG_BIN, 1, 100, 100 ); // ルート画像の(10,10)-(49,49)をチャイルド画像として割り当て himg_child = fnFIE_img_child_alloc( himg, 10, 10, 40, 40 ); // チャイルド画像の(0,0)が有る32bitブロックのアドレスを取得 fnFIE_img_get_ch_binadrs( himg_child, 0, &adrs, &bpos ); // y座標を+1するために必要な移動量を取得 step = fnFIE_img_get_step( himg_child ); // 座標(0,5) の画素値を1に *(adrs+step*5) |= 0x80000000 >> bpos; // 座標(7,8) の画素値を0に *(adrs+step*8 + (bpos + 7) / 32) &= ~(0x80000000 >> (bpos + 7) % 32); fnFIE_free_object( himg_child ); fnFIE_free_object( himg ); // 終了処理 fnFIE_teardown(); return 0; }
マクロ定義 | |
#define | F_IMG_MAX_CHANNELS 16 |
列挙型 | |
enum | f_imgtype { F_IMG_BIN = 1, F_IMG_UC8 = 2, F_IMG_S16 = 3, F_IMG_US16 = 4, F_IMG_DOUBLE = 5, F_IMG_RGBQUAD = 6, F_IMG_I32 = 7, F_IMG_UI32 = 8, F_IMG_I64 = 9, F_IMG_FLOAT = 11, F_IMG_RGBTRIPLE = 12 } |
画像種別 [詳細] | |
関数 | |
INT FVALGAPI | fnFIE_img_set_padding_size (INT exp) |
パディングサイズの設定 | |
FHANDLE FVALGAPI | fnFIE_img_root_alloc (INT type, INT channels, INT width, INT height) |
ルート画像の確保 | |
FHANDLE FVALGAPI | fnFIE_img_root_import_alloc (VOID **adrss, INT channels, INT type, INT_PTR step, INT width, INT height) |
ルート画像の確保(import版) | |
INT FVALGAPI | fnFIE_img_root_realloc (FHANDLE himg, INT type, INT channels, INT width, INT height) |
ルート画像の変更 | |
INT FVALGAPI | fnFIE_img_root_copy (FHANDLE hsrc, FHANDLE *hdst) |
ルート画像のコピー | |
FHANDLE FVALGAPI | fnFIE_img_child_alloc (FHANDLE hroot, INT offset_x, INT offset_y, INT width, INT height) |
チャイルド画像の確保 | |
FHANDLE FVALGAPI | fnFIE_img_child_alloc_single_ch (FHANDLE hroot, INT ch, INT offset_x, INT offset_y, INT width, INT height) |
チャイルド画像の確保(単一チャネル割り当て版) | |
INT FVALGAPI | fnFIE_img_child_detach (FHANDLE hchild) |
チャイルド画像のルート画像への割り当てを解除(NULLチャイルド画像にする) | |
INT FVALGAPI | fnFIE_img_child_attach (FHANDLE hchild, FHANDLE hroot, INT x, INT y, INT width, INT height) |
チャイルド画像をルート画像へ割り当てる | |
INT FVALGAPI | fnFIE_img_child_attach_single_ch (FHANDLE hchild, FHANDLE hroot, INT ch, INT x, INT y, INT width, INT height) |
チャイルド画像をルート画像へ割り当てる | |
VOID FVALGAPI | fnFIE_img_get_ch_binadrs (FHANDLE himg, INT channel, UINT **adrs, INT *bitpos) |
2値画像の画像アドレス取得 | |
VOID FVALGAPI | fnFIE_img_get_binadrs (FHANDLE himg, UINT **adrs, INT *bitpos) |
2値画像の画像アドレス取得(チャネル0固定) | |
VOID *FVALGAPI | fnFIE_img_get_ch_adrs (FHANDLE himg, INT channel) |
画像アドレス取得 | |
VOID *FVALGAPI | fnFIE_img_get_adrs (FHANDLE himg) |
画像アドレス取得(チャネル0固定) | |
INT FVALGAPI | fnFIE_img_get_params (FHANDLE himg, INT *channels, INT *type, INT_PTR *step, INT *width, INT *height) |
画像情報取得 | |
INT FVALGAPI | fnFIE_img_get_channels (FHANDLE himg) |
画像情報取得(チャネル数) | |
INT FVALGAPI | fnFIE_img_get_type (FHANDLE himg) |
画像情報取得(画像タイプ) | |
INT_PTR FVALGAPI | fnFIE_img_get_step (FHANDLE himg) |
画像情報取得(ステップ) | |
INT_PTR FVALGAPI | fnFIE_img_get_pixel_size (FHANDLE himg) |
画像情報取得(画素サイズ) | |
INT_PTR FVALGAPI | fnFIE_img_get_step_as_bytes (FHANDLE himg) |
画像情報取得(メモリステップ) | |
INT FVALGAPI | fnFIE_img_get_width (FHANDLE himg) |
画像情報取得(画像幅) | |
INT FVALGAPI | fnFIE_img_get_height (FHANDLE himg) |
画像情報取得(画像高さ) | |
INT FVALGAPI | fnFIE_img_get_root_params (FHANDLE himg, FHANDLE *hroot, INT *channel, INT *offset_x, INT *offset_y) |
画像のルート情報取得 | |
INT FVALGAPI | fnFIE_img_is_overlaped (FHANDLE himg1, FHANDLE himg2) |
画像オーバーラップ判定 |
#define F_IMG_MAX_CHANNELS 16 |
FIE画像オブジェクトのチャネル数の最大値
enum f_imgtype |
INT FVALGAPI fnFIE_img_set_padding_size | ( | INT | exp | ) |
パディングサイズの設定
fnFIE_img_root_alloc() 又は fnFIE_img_root_realloc() 時に、ステップ(画像メモリ幅)を 何バイト単位にするかを 2^n の指数nで設定します。画像幅がこの倍数で無い場合は、 適切なパディングが挿入され、ステップは 2^n の倍数バイトになります。 但し、1画素のバイト数が 2^n よりも大きい場合、ステップは1画素のバイト数の倍数になります。
本関数を1度も呼ばなかった場合のデフォルト値は n=3 です。 特別な理由が無い限りデフォルトの n=3 のまま使用することを推奨します。
[in] | exp | ステップサイズ 2^n の乗数n (0≦n≦10) デフォルト==3 |
FHANDLE FVALGAPI fnFIE_img_root_alloc | ( | INT | type, | |
INT | channels, | |||
INT | width, | |||
INT | height | |||
) |
ルート画像の確保
ルート画像を確保します。
生成された画像ハンドルが不要になったら fnFIE_free_object() にて解放してください。
[in] | type | 確保する画像種別。下記のいずれかを指定。
|
[in] | channels | チャネル数(1〜16) |
[in] | width | 画像幅(1以上) |
[in] | height | 画像高さ(1以上) |
FHANDLE FVALGAPI fnFIE_img_root_import_alloc | ( | VOID ** | adrss, | |
INT | channels, | |||
INT | type, | |||
INT_PTR | step, | |||
INT | width, | |||
INT | height | |||
) |
ルート画像の確保(import版)
外部で確保された画像メモリ空間を使用して、ルート画像を作成します。 本関数で作成したルート画像はリサイズすることができません。 また、本関数で作成されたルート画像では fnFIE_free_object() 関数によって オブジェクトを解放しても、登録された画像メモリは解放しません。 このため、登録したメモリは登録したユーザー側で解放処理を行う必要が有ります。
[in] | adrss | 画像メモリのポインタ列。 (チャネル0から順番になった配列で channels パラメータ個分の要素が必要) |
[in] | channels | チャネル数(1〜16) |
[in] | type | 画像種別
|
[in] | step | 画像ステップ(メモリ横幅:画素サイズ単位) 但し、下記の画像型の場合は単位が変わります。
|
[in] | width | 画像幅(1以上) |
[in] | height | 画像高さ(1以上) |
INT FVALGAPI fnFIE_img_root_realloc | ( | FHANDLE | himg, | |
INT | type, | |||
INT | channels, | |||
INT | width, | |||
INT | height | |||
) |
ルート画像の変更
ルート画像のサイズ等を変更します。
[in] | himg | サイズを変更する画像のハンドル |
[in] | type | 確保する画像種別
|
[in] | channels | チャネル数(1〜16) |
[in] | width | 画像幅(1以上) |
[in] | height | 画像高さ(1以上) |
F_ERR_NONE | 正常終了 | |
F_ERR_NOMEMORY | メモリ不足で確保に失敗した | |
F_ERR_INVALID_IMAGE | 不正な画像が渡された(ハンドルが不正orインポートされていてリサイズ不可) | |
F_ERR_INVALID_PARAM | パラメータ不正 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_img_root_copy | ( | FHANDLE | hsrc, | |
FHANDLE * | hdst | |||
) |
ルート画像のコピー
hsrc に指定された画像と同じサイズのルート画像を新たに生成し、内容を複製して *hdst に返します。
hsrc に指定する画像は、ルート画像でもチャイルド画像でもかまいません。 大きなルート画像の小さな一部分を指し示すチャイルド画像を当関数でコピーした場合、元のルート画像の小さな一部分と同サイズの新たなルート画像が生成して返されます。
生成された画像ハンドル(*hdst)が不要になったら fnFIE_free_object() にて解放してください。
[in] | hsrc | コピー元の画像のハンドル( type: all ) |
[out] | hdst | コピーされたルート画像のハンドル 関数エントリー時 *hdst == NULL でなければなりません。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | パラメータエラー( hdst がNULL または *hdst != NULL ) | |
F_ERR_INVALID_IMAGE | 不正画像エラー( hsrc が不正 ) | |
F_ERR_NOMEMORY | メモリ不足エラー | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
FHANDLE FVALGAPI fnFIE_img_child_alloc | ( | FHANDLE | hroot, | |
INT | offset_x, | |||
INT | offset_y, | |||
INT | width, | |||
INT | height | |||
) |
チャイルド画像の確保
指定のルート画像の部分矩形領域をチャイルド画像に割り当てます。 割り当て先の画像( hroot パラメータ)には、ルート画像でもチャイルド画像でも どちらでも指定することができます。 hroot にルート画像が渡された場合は、 本関数で作成されたチャイルド画像は、そのルート画像のチャイルドになります。 hroot にチャイルド画像が渡された場合は、「 hroot に渡されたチャイルド画像が 割り当てているルート画像」のチャイルドになります。
ルート画像が2以上のチャネルを持っていた場合は、 作成されたチャイルド画像も同じチャネル数を持ちます。(下図参照)
ルート画像の領域をはみ出すチャイルド画像を作成することはできません。 はみ出る領域を指定した場合には NULL を返します。 また、全パラメータに0を指定した場合は、ルート画像が割り当てられていない NULLチャイルド画像を生成します。
生成された画像ハンドルが不要になったら fnFIE_free_object() にて解放してください。
[in] | hroot | ルート画像のハンドル(チャイルド画像でも可) |
[in] | offset_x | ルート座標系における、チャイルド領域左上x座標 (0≦ offset_x ≦ (ルート画像の幅 -1 - width )) |
[in] | offset_y | ルート座標系における、チャイルド領域左上y座標 (0≦ offset_y ≦ (ルート画像の高さ -1 - height )) |
[in] | width | チャイルド領域幅 (1≦ width ≦(ルート画像の幅 - offset_x )) |
[in] | height | チャイルド領域高さ(1≦ height ≦(ルート画像の高さ - offset_y )) |
FHANDLE FVALGAPI fnFIE_img_child_alloc_single_ch | ( | FHANDLE | hroot, | |
INT | ch, | |||
INT | offset_x, | |||
INT | offset_y, | |||
INT | width, | |||
INT | height | |||
) |
チャイルド画像の確保(単一チャネル割り当て版)
指定のルート画像の部分矩形領域をチャイルド画像に割り当てます。 割り当て先の画像( hroot パラメータ)には、ルート画像でもチャイルド画像でも どちらでも指定することができます。 hroot にルート画像が渡された場合は、 本関数で作成されたチャイルド画像は、そのルート画像のチャイルドになります。 hroot にチャイルド画像が渡された場合は、「 hroot に渡されたチャイルド画像が 割り当てているルート画像」のチャイルドになります。
作成されるチャイルド画像は、ルート画像の指定の単一チャネルのみに割り当てられます。(下図参照)
ルート画像の領域をはみ出すチャイルド画像を作成することはできません。 はみ出る領域を指定した場合には NULL を返します。 全パラメータに0を指定した場合は、ルート画像が割り当てられていない NULLチャイルド画像を生成します。
生成された画像ハンドルが不要になったら fnFIE_free_object() にて解放してください。
[in] | hroot | ルート画像のハンドル(チャイルド画像でも可) |
[in] | ch | チャイルド画像を割り当てる、ルート画像のチャネル(0≦ ch ≦(ルート画像のch数-1)) |
[in] | offset_x | ルート座標系における、チャイルド領域左上x座標(0≦ offset_x ≦(ルート画像の幅 -1 - width )) |
[in] | offset_y | ルート座標系における、チャイルド領域左上y座標(0≦ offset_y ≦(ルート画像の高さ -1 - height )) |
[in] | width | チャイルド領域幅 (1≦ width ≦(ルート画像の幅 - offset_x )) |
[in] | height | チャイルド領域高さ(1≦ height ≦(ルート画像の高さ - offset_y )) |
INT FVALGAPI fnFIE_img_child_detach | ( | FHANDLE | hchild | ) |
チャイルド画像のルート画像への割り当てを解除(NULLチャイルド画像にする)
チャイルド画像のルート画像への割り当てを解除します。 割り当てを解除されたチャイルド画像は画像を保持しない(NULLポインタを持つ) 画像ハンドラになります。
[in] | hchild | 解除するチャイルド画像のハンドル |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_IMAGE | 異常終了(ハンドルにNULLが渡された or ルート画像が渡された) | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_img_child_attach | ( | FHANDLE | hchild, | |
FHANDLE | hroot, | |||
INT | x, | |||
INT | y, | |||
INT | width, | |||
INT | height | |||
) |
チャイルド画像をルート画像へ割り当てる
既存のチャイルド画像を、指定のルート画像に割り当て直します。 割り当て先の画像( hroot パラメータ)には、ルート画像でもチャイルド画像でも どちらでも指定することができます。 hroot にルート画像が渡された場合は、 本関数で作成されたチャイルド画像は、そのルート画像のチャイルドになります。 hroot にチャイルド画像が渡された場合は、「 hroot に渡されたチャイルド画像が 割り当てているルート画像」のチャイルドになります。
ルート画像が2以上のチャネルを持っていた場合は、 作成されたチャイルド画像も同じチャネル数を持ちます。(下図参照)
ルート画像の領域をはみ出すチャイルド画像を作成することはできません。 はみ出る領域を指定した場合には F_ERR_INVALID_PARAM を返します。
[in] | hchild | 割り当てるチャイルド画像 |
[in] | hroot | 割り当てられるれるルート画像(チャイルド画像でも可) |
[in] | x | 領域左上x座標 (0≦ x ≦(ルート画像の幅 -1 - width )) |
[in] | y | 領域左上y座標 (0≦ y ≦(ルート画像の高さ -1 - height )) |
[in] | width | 領域幅 (1≦ width ≦(ルート画像の幅 - x )) |
[in] | height | 領域高さ (1≦ height ≦(ルート画像の高さ- y )) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | パラメータエラー | |
F_ERR_INVALID_IMAGE | 不正な画像が渡されました | |
F_ERR_NOMEMORY | メモリ不足により異常終了 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_img_child_attach_single_ch | ( | FHANDLE | hchild, | |
FHANDLE | hroot, | |||
INT | ch, | |||
INT | x, | |||
INT | y, | |||
INT | width, | |||
INT | height | |||
) |
チャイルド画像をルート画像へ割り当てる
既存のチャイルド画像を、指定のルート画像に割り当て直します。 割り当て先の画像( hroot パラメータ)には、ルート画像でもチャイルド画像でも どちらでも指定することができます。 hroot にルート画像が渡された場合は、 本関数で作成されたチャイルド画像は、そのルート画像のチャイルドになります。 hroot にチャイルド画像が渡された場合は、「 hroot に渡されたチャイルド画像が 割り当てているルート画像」のチャイルドになります。
作成されるチャイルド画像は、ルート画像の指定の単一チャネルのみに割り当てられます。(下図参照)
ルート画像の領域をはみ出すチャイルド画像を作成することはできません。 はみ出る領域を指定した場合には F_ERR_INVALID_PARAM を返します。
[in] | hchild | 割り当てるチャイルド画像 |
[in] | hroot | 割り当てられるルート画像(チャイルド画像でも可) |
[in] | ch | チャイルド画像を割り当てる、ルート画像のチャネル(0≦ ch ≦(ルート画像のch数-1)) |
[in] | x | 領域左上x座標 (0≦ x ≦(ルート画像の幅 -1 - width )) |
[in] | y | 領域左上y座標 (0≦ y ≦(ルート画像の高さ -1 - height )) |
[in] | width | 領域幅 (1≦ width ≦(ルート画像の幅- x )) |
[in] | height | 領域高さ (1≦ height ≦(ルート画像の高さ- y )) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | パラメータエラー | |
F_ERR_INVALID_IMAGE | 不正な画像が渡されました | |
F_ERR_NOMEMORY | メモリ不足により異常終了 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
VOID FVALGAPI fnFIE_img_get_ch_binadrs | ( | FHANDLE | himg, | |
INT | channel, | |||
UINT ** | adrs, | |||
INT * | bitpos | |||
) |
2値画像の画像アドレス取得
himg パラメータで指定された2値画像の左上アドレスを返します。 画像が2値画像(typeがF_IMG_BIN)で無かった場合には adrs, bitpos 共に0を返します。
2値画像はUINTに32画素がパッキングされた特殊形式のため、 本関数を使用してアドレスを取得します。本関数では、adrsパラメータにて 画像左上の画素がパッキングされているブロックのアドレスを adrs に、 同画素のパッキングされているブロック内のビット位置を bitpos にて返します。 bitpos はブロック内一番 左側 (X座標が小さい方)を0とする0〜31の値になります。
2値画像以外の画像に対しては fnFIE_img_get_adrs() を使用して下さい。
[in] | himg | アドレスを取得する画像のハンドル |
[in] | channel | アドレスを取得するチャネルの番号 |
[out] | adrs | 左上画素が含まれるブロックのアドレス |
[out] | bitpos | ブロック内の左上画素のビット位置。 ブロック内一番左側(X座標が小さい方)を0とする0〜31の値。 |
VOID FVALGAPI fnFIE_img_get_binadrs | ( | FHANDLE | himg, | |
UINT ** | adrs, | |||
INT * | bitpos | |||
) |
2値画像の画像アドレス取得(チャネル0固定)
himg パラメータで指定された2値画像の「チャネル0番の」左上アドレスを返します。 0番以外のチャネルのアドレスが取得したい場合は fnFIE_img_get_ch_binadrs() を使用して下さい。 画像が2値画像(F_IMG_BIN)で無かった場合には adrs, bitpos 共に0を返します。
2値画像はUINTに32画素がパッキングされた特殊形式のため、 本関数を使用してアドレスを取得します。本関数では adrs パラメータにて 画像左上の画素がパッキングされているブロックのアドレスを adrs に、 同画素のパッキングされているブロック内のビット位置を bitpos にて返します。 bitpos はブロック内一番 左側 (X座標が小さい方)を0とする0〜31の値になります。
2値画像以外の画像に対しては fnFIE_img_get_adrs() を使用して下さい。
[in] | himg | アドレスを取得する画像のハンドル |
[out] | adrs | 左上画素が含まれるブロックのアドレス |
[out] | bitpos | ブロック内の左上画素のビット位置。 ブロック内一番左側(X座標が小さい方)を0とする0〜31の値。 |
VOID* FVALGAPI fnFIE_img_get_ch_adrs | ( | FHANDLE | himg, | |
INT | channel | |||
) |
画像アドレス取得
imgパラメータで指定された画像の左上アドレスを返します。 但し、画像が2値画像(F_IMG_BIN)の場合は、本関数では取得できません。 この場合は、本関数ではNULLを返しますので、 fnFIE_img_get_binadrs() を代わりに使用して下さい。
[in] | himg | アドレスを取得する画像のハンドル |
[in] | channel | アドレスを取得するチャネル番号 |
VOID* FVALGAPI fnFIE_img_get_adrs | ( | FHANDLE | himg | ) |
画像アドレス取得(チャネル0固定)
himg パラメータで指定された画像の「チャネル0番の」左上アドレスを返します。 0番以外のチャネルのアドレスが取得したい場合は fnFIE_img_get_ch_adrs() を使用して下さい。 但し、画像が2値画像(F_IMG_BIN)の場合は、本関数では取得できません。 この場合は、本関数ではNULLを返しますので、 fnFIE_img_get_binadrs() を代わりに使用して下さい。
[in] | himg | アドレスを取得する画像のハンドル |
INT FVALGAPI fnFIE_img_get_params | ( | FHANDLE | himg, | |
INT * | channels, | |||
INT * | type, | |||
INT_PTR * | step, | |||
INT * | width, | |||
INT * | height | |||
) |
画像情報取得
himg パラメータで指定された画像の情報を取得します。 取得できる情報は、チャネル数、種別、幅、高さ、ステップ です。 指定された画像がNULLチャイルド画像だった場合は、各パラメータには0を返し、正常終了します。
出力先の引数( channels, type, step, width, height )はすべてNULLポインタチェックがされるため、 必要の無いものにはNULLが指定可能です。このとき himg 以外のパラメータはNULLであっても、 エラーにはならず正常終了となります。例えば、チャネル数とステップだけを取得したければ、 channels と step に有効なポインタを渡し、他の type, width, hegiht にはNULLを指定すれば良いです。
[in] | himg | 情報を取得する画像のハンドル |
[out] | channels | 画像メモリのチャネル数 |
[out] | type | 画像メモリの種別 |
[out] | step | 画像メモリの行ステップ(画素単位) |
[out] | width | 領域幅 |
[out] | height | 領域高さ |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_IMAGE | 不正な画像ハンドルが渡されたため異常終了 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_img_get_channels | ( | FHANDLE | himg | ) |
画像情報取得(チャネル数)
himg パラメータで指定された画像のチャネル数を取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
[in] | himg | 情報を取得する画像のハンドル |
INT FVALGAPI fnFIE_img_get_type | ( | FHANDLE | himg | ) |
画像情報取得(画像タイプ)
himg パラメータで指定された画像のタイプを取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
[in] | himg | 情報を取得する画像のハンドル |
INT_PTR FVALGAPI fnFIE_img_get_step | ( | FHANDLE | himg | ) |
画像情報取得(ステップ)
himg パラメータで指定された画像のステップ(メモリ横幅)を取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
ステップは「(x,y)から(x,y+1)に移動するために必要な移動量」であり、単位は画素です。 但し、F_IMG_BIN型とF_IMG_RGBTRIPLE型の場合は単位が異なり、それぞれ下記のようになります。
[in] | himg | 情報を取得する画像のハンドル |
INT_PTR FVALGAPI fnFIE_img_get_pixel_size | ( | FHANDLE | himg | ) |
画像情報取得(画素サイズ)
himg パラメータで指定された画像の画素サイズを取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
画素サイズは「(x,y)から(x+1,y)に移動するために必要な移動量」であり、単位はバイトです。 但し、 F_IMG_BIN 型の場合は「(x,y)画素の所属しているブロックの先頭から次のブロックの先頭に移動するために必要なバイト数」になります。 詳しくは画像オブジェクトの説明文書内「2値画像について」を参照してください。
[in] | himg | 情報を取得する画像のハンドル |
INT_PTR FVALGAPI fnFIE_img_get_step_as_bytes | ( | FHANDLE | himg | ) |
画像情報取得(メモリステップ)
himg パラメータで指定された画像のメモリステップ(バイト単位メモリ横幅)を取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
メモリステップは「(x,y)から(x,y+1)に移動するために必要な移動量」であり、単位はバイトです。 但し、 F_IMG_BIN 型の場合は「(x,y)画素の所属している32bitブロックの先頭から(x,y+1)画素の所属している32bitブロックの先頭に移動するために必要なバイト数」になります。 詳しくは画像オブジェクトの説明文書内「2値画像について」を参照してください。
[in] | himg | 情報を取得する画像のハンドル |
INT FVALGAPI fnFIE_img_get_width | ( | FHANDLE | himg | ) |
画像情報取得(画像幅)
himg パラメータで指定された画像の幅を取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
[in] | himg | 情報を取得する画像のハンドル |
INT FVALGAPI fnFIE_img_get_height | ( | FHANDLE | himg | ) |
画像情報取得(画像高さ)
himg パラメータで指定された画像の高さを取得します。 指定された画像がNULLチャイルド画像だった場合は、0が返ります。
[in] | himg | 情報を取得する画像のハンドル |
INT FVALGAPI fnFIE_img_get_root_params | ( | FHANDLE | himg, | |
FHANDLE * | hroot, | |||
INT * | channel, | |||
INT * | offset_x, | |||
INT * | offset_y | |||
) |
画像のルート情報取得
画像 himg の割り当てられているルート画像の情報を取得します。 himg はルート画像でもチャイルド画像でも構いません。
[in] | himg | 情報を取得する画像 |
[out] | hroot | himg の割り当てられているルート画像のハンドル himg がルート画像のときは himg を返す(つまり *hroot = himg ) 関数エントリー時 *hroot == NULL でなければなりません。 |
[out] | channel | *hroot のうち himg の割り当てられているチャネル番号 himg がルート画像の場合、または himg が hroot の全チャネルに 割り当てられている場合は -1 を返す |
[out] | offset_x | himg の左上X座標(ルート画像の左上画素を(0,0)としたときの座標) |
[out] | offset_y | himg の左上Y座標(ルート画像の左上画素を(0,0)としたときの座標) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_IMAGE | himg に無効な画像ハンドルが指定された | |
F_ERR_INVALID_PARAM | 無効なパラメータが入力された。
| |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_img_is_overlaped | ( | FHANDLE | himg1, | |
FHANDLE | himg2 | |||
) |
画像オーバーラップ判定
2枚の画像 himg1, himg2 が指し示している画像メモリ空間が、 オーバーラップして(重なって)いるかいないかを判定します。
「オーバーラップしている」とは himg1, himg2 のどちらか、 又は両方がチャイルド画像である場合に、両方の関連づけられている ルート画像が同じ物であり、尚かつその領域が重なっている状態を言います。(下図)
[in] | himg1 | 判定する画像1 |
[in] | himg2 | 判定する画像2 |
0 | 2枚の画像はオーバーラップしていない | |
1 | 2枚の画像の一部分がオーバーラップしている | |
2 | 2枚の画像は完全に同じ部分を指している | |
F_ERR_INVALID_IMAGE | 無効な画像が指定された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |