New (2001/10/17)
BMP画像形式の?(不思議)の続きです。
DOS時代のCG画像には、当時使っていた3DCGソフト(C-TRACE)の独自画像形式(.img)というものばかりが残っていました。CGコンテスト等に応募したものなどは、RGBベタファイルに変換してあったのですが、ほとんどは.imgのままでした。今になって画像を見ようと思っても、画像ローダーがありません。先日「BMP画像形式の?」で書いたように、RGBベタファイルを表示して、BMP形式で保存するツールは出来ています。そこで、C-TRACEの独自画像形式.imgのローダーさえ出来れば、imgをBMPに変換保存するツールを作るのは簡単な仕事です。
早速C-TRACEのマニュアルを探すと、見つかりました。DOS時代のソフトはすっかり処分してしまったのにマニュアルは何故か残っていました。マニュアルには、imgファイルフォーマットとヘッダーの詳細説明が載っていました。幸運です。
(1)C-TRACE 旧タイプIMGファイルフォーマット
| バイト数 |
名前 |
説明 |
| 2 |
TYPE |
0:カラー、1:モノクロ |
| 2 |
WIDTH |
X方向ドット数 |
| 2 |
HEIGHT |
Y方向ドット数 |
| 4 |
|
常に0 |
| 4 |
HEADE_SIZE |
ヘッダーの大きさ(データ部分へのオフセット)バイト数 |
| |
DATA |
カラーの場合:Redを1バイト、Greenを1バイト、Blue1バイト、夫々256階調で全ピクセル分繰り返す。 |
| |
|
モノクロの場合:輝度を256階調1バイトで全ピクセル分繰り返す。 |
(2)C-TRACE 新タイプIMGファイルフォーマット
| バイト数 |
名前 |
説明 |
| 2 |
TYPE |
データのタイプ、カラーorモノクロ、α情報有り無しなど |
| 2 |
WIDTH |
X方向ドット数 |
| 2 |
HEIGHT |
Y方向ドット数 |
| 2 |
TILE_X |
分割マッピング時の各分割データのX方向のドット数 |
| 2 |
TILE_Y |
分割マッピング時の各分割データのY方向のドット数 |
| 4 |
HEADER_SIZE |
ヘッダーの大きさ(データ部分へのオフセット)バイト数 |
| 256 |
ID |
C-TRACEのIMGファイルであることを明確にする文字列 |
| 2 |
STEP_X |
ステップ数(X方向) |
| 2 |
STEP_Y |
ステップ数(Y方向) |
| 2 |
AREA_LX |
エリアの左下X座標 |
| 2 |
AREA_LY |
エリアの左下Y座標 |
| 2 |
AREA_RX |
エリアの右上X座標 |
| 2 |
AREA_RY |
エリアの右上Y座標 |
| 2 |
SCOPE_LX |
スコープの左下X座標 |
| 2 |
SCOPE_LY |
スコープの左下Y座標 |
| 2 |
SCOPE_RX |
スコープの右上X座標 |
| 2 |
SCOPE_RY |
スコープの右上Y座標 |
| 2 |
TERMINATE_LINE |
計算が中断されたライン |
| |
DATA |
Redを1バイト、Greenを1バイト、Blue1バイト、αチャネル1バイトを、夫々256階調で全ピクセル分繰り返す。 |
早速ヘッダー部分を読み取って、画像データ(RGBベタ部分)を表示するプログラムを作成しました。ヘッダー部分の解析により、フルカラー、モノクロ、バージョン等の違いによる画像データへのオフセットの違い、α情報の有り無しなどを判別し、処理を切り分けます。見事に完成。でも、このソフト、私にしか役に立たないでしょうね。
