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 コマンドラインを表す文字列データ。
CLPZ: 使用されたクリッピング プレーンを表すデプス マップ固有のフィールド。2 つの浮動小数点値として格納される。
ESXY: 視点の x-y 比。デプス マップに固有のフィールドで、2 つの浮動小数点値として格納された正規化ピクセル座標から XY 視点座標を計算するのに使われる。
関数によっては、タイルの順序を気にせずに個別ライン モードでイメージの読み取りと書き込みができます。イメージの読み取り中に自動的にズームや補正を行う関数もあります(圧縮イメージに対する補正処理の性能が大幅に改善されました)。また、フォーマット変換関数を使用すると、イメージの読み取り時にフォーマットを自動的に変換できます。
イメージ ライブラリ内の関数の詳細については、各関数のマニュアル ページ、ライブラリに付属の「include」ファイルとサンプル プログラムなどを参照してください。