2

私は独自の画像フォーマットSNG(独自のフォーマット)を持っています。これは、別のHDRファイルに画像メタ情報とともに画像データの無数の配列を持っています。

次に、この SNG 形式を標準 TIFF 6.0 形式に変換する必要があります。そこで、TIFF 形式、つまりそのヘッダー、画像ファイル ディレクトリ (IFD)、およびストリップされた画像データについて調べました。

今、私はこの変換についてほとんど心配していません。助けてください。

  1. SNG 連続データと TIFF ストリップ データ: SNG データを 1 つのストリップの連続データとして TIFF に変換する必要があります (データの読み込み/編集時間の問題?) または、SNG 画像データの論理 StripOffsets を作成する必要があります。

  2. SNG データ ヘッダーは必要なメタ情報のみを使用するため、SNG を TIFF に変換する際に、NewSubFileType、ソフトウェア タグなどの一部の情報を取得できません。

    そのため、変換後に、NewSubFileType、Software Tag などの欠落しているディレクトリ情報が TIFF ファイルの必要十分条件であるかどうかが懸念されます。

  3. SNG データの RGB サンプルの各ピクセル コンポーネントのエンコード:

ここで、ピクセル コンポーネントごとの各 SNG イメージ データ ストリップは次のようにエンコードされます。

Out^[i] := round( LineBuffer^[i * 3] * **0.072169**  +  LineBuffer^[i * 3 + 1] * **0.715160** + LineBuffer^[i * 3+ 2]* **0.212671**); 

私が推測する唯一の方法は、各ピクセルが 3 つの RGB コンポーネントで表され、SNG Viewer が SNG 画像データの RGB カラー情報を機能させるために各コンポーネントに係数が乗算されることです。(以前はこの左側で作業していた開発者が、今はトレースをたどっています:))

したがって、これを TIFF に変換するときに、同じデコードを行う必要があります。これは、TIFF の RBG 情報がどのように生成されるか、またはこの情報が必要かという懸念を引き起こします。

手伝ってください...

4

2 に答える 2

1

これを標準のWindowsビットマップハンドルにロードできますか?もしそうなら、TIFFとして保存するための無料の商用ライブラリがおそらくたくさんあります。

TIFFの標準はlibtiffです-それはCライブラリです。エキスパートがTIFF形式で作成したDelphiのバージョンは次のとおりです。

http://www.awaresystems.be/imaging/tiff/delphi.html

選択肢はたくさんあるようです。

のアプローチは

  1. フォーマットをメモリ内の標準ビットマップにロードします(表示するにはこれを行う必要がありますか?)
  2. 既存のTIFFエンコーディングライブラリを使用してTIFFとして保存する

直接フォーマットからフォーマットへの変換を試みるよりもはるかに簡単です。私がこのようにしない唯一の理由は次のとおりです。

  1. ビットマップが大きすぎてメモリに保持できません
  2. 元の形式は不可逆であり、再エンコードで品質が低下しますが、品質を保存するには、標準の非可逆形式(JPEG)で保存する必要があります。

免責事項:私はAtalasoftで働いています。

.NETイメージングコーデック(TIFFを含む)を作成します。これはLibTiffよりもはるかに使いやすく、COMを介してDelphiで呼び出すことができます。数行のコードで、標準のWindowsビットマップをTIFFまたはPDF(またはその他の形式)に変換できます。

于 2010-04-30T12:44:48.177 に答える
1

この形式を処理して印刷できる Windows アプリケーションを持っている場合の 1 つの方法は、それを呼び出して、直接出力をサポートする多くの利用可能な「プリンタ ドライバ」の 1 つにファイルを印刷することです。 TIFF。

于 2010-04-30T08:47:01.740 に答える