イメージ ライブラリの概要
 
 
 

IO イメージ ライブラリは flib ライブラリの一部です。IO イメージ ライブラリのルーチンを使用すると、構造化ファイル内のイメージの読み取りと書き込みを行うことができます。

ファイル フォーマット

イメージ ファイルのフォーマットは非常に柔軟性に富んでいます。ブロックの数や相対位置に関する制限はごく少数しかありません。通常、それらの制限は純粋に論理的なものです。たとえば、「ヘッダーはオフセット 124 から始まる」といった物理的な制限ではなく、「ヘッダーはピクセル ブロックよりも前にくる」といった論理的な制限です。

イメージ ファイルは flib ライブラリの主要な操作対象であり、さまざまなブロックをイメージ ファイルに記述できます。最小限のイメージは、CIMG タイプの FOR4 グループ(4 バイトのワード境界に整列されるグループ)から構成されます。この FOR4 グループの個々の構成要素は下記の順序で記述します。

ピクセル情報は TBMP タイプの FOR4 グループに保存され、場合によってはすぐにスキップされます。

TBMP タイプの FOR4 グループでは、各ピクセルを表すデータ ブロックを特定の順序で記述します。たとえば、4 個のタイルに分割されるイメージは次のように表現されます。

FOR4 <size> CIMG
	BMHD 24 ... definition of size, maps, etc...
	FOR4 <size2> TBMP
		RGBA <ttile1>	... tile 1 pixels ...
		RGBA <ttile2>	... tile 2 pixels ...
		RGBA <ttile3>	... tile 3 pixels ...
		RGBA <ttile4>	... tile 4 pixels ...

ヘッダーは ILheader 構造によって定義されます。RGBA ブロックの構造は次のとおりです。

[x1, y1, x2, y2]: タイル座標(それぞれ 2 バイト)

[pixels]: 圧縮モードに従ってエンコードされたピクセル情報

イメージに Z バッファが含まれている場合は、RGBA ブロックと同じ構造を持つ ZBUF ブロックを使用してZ バッファ情報(エンコード方式は RLE)を記述します。

HIST: イメージを作成した Maya コマンドラインを表す文字列データ。

VERS: Maya バージョン情報を表す文字列データ。

CLPZ: 使用されたクリッピング プレーンを表すデプス マップ固有のフィールド。2 つの浮動小数点値として格納される。

ESXY: 視点の x-y 比。デプス マップに固有のフィールドで、2 つの浮動小数点値として格納された正規化ピクセル座標から XY 視点座標を計算するのに使われる。

注:ILIB ライブラリでは End フィールドがサポートされません。

関数

関数によっては、タイルの順序を気にせずに個別ライン モードでイメージの読み取りと書き込みができます。イメージの読み取り中に自動的にズームや補正を行う関数もあります(圧縮イメージに対する補正処理の性能が大幅に改善されました)。また、フォーマット変換関数を使用すると、イメージの読み取り時にフォーマットを自動的に変換できます。

イメージ ライブラリ内の関数の詳細については、各関数のマニュアル ページ、ライブラリに付属の「include」ファイルとサンプル プログラムなどを参照してください。