0

TIFF画像を含むバイナリファイルを読み取って解釈する必要があります。これを行うための読者がいることは知っていますが、私は一生懸命やりたいと思っています。TIFF形式の説明を見つけたので、バイナリファイルを小さなチャンクで解析する必要があります。完全なバイナリファイルをメモリに読み取ることができたと仮定します。これは、バイトの長いリストを1つ含む変数があることを意味します。フォーマット定義から、nバイトのさまざまなグループの意味がわかります。

変数アドレスが画像変数配列の正しい位置を指すように、長さの異なる文字変数(2、3、4など)をどのように定義できますか?

言い換えると、私の画像がファイルのすべてのバイトを含む配列Imageにロードされていると仮定します。最初の2バイトを長さ2バイトの文字列にロードして、アドレスポインタをImage配列の最初の位置にリンクするだけで、最初の2バイトが最初の文字列に自動的に関連付けられるようにします。4バイトの2番目の文字列には別の意味があるため、4バイトの2番目の文字列のアドレスがImage配列の3番目の位置を指すようにします。

これはC++で実行可能ですか?これは、私がずっと前に分析したシミュレーションコードでFortran77の動的メモリ割り当てを行うための通常の方法であったことを覚えています。

ヒントを事前に感謝します!

よろしく、

ステファン

4

1 に答える 1

1

C ++言語は、バイト配列からTIFFファイルを簡単に処理できます。あなたが考えている考えは基本的に正しいですが、それにはいくつかの問題があります。C文字列はゼロで終了し、TIFFファイルに表示される文字列は、長さが明示的に指定されているため、必ずしもゼロで終了するとは限りません。TIFF固有のデータフィールドを保持するための専用のデータ構造を作成してから、バイナリデータを構造に解析する方が実際には簡単です。マシンのエンディアンが反対の場合、メソッドはすぐにMotorola/Intelバイトの問題で問題が発生します。

于 2012-09-29T22:40:54.110 に答える