4

私はいくつかのデータ、主にTiff画像の束を変換するプログラムを書いています。一部のTiffには、小さな問題があるようです。一部のビューア(Irfanview、クライアントの古いシステム)では正常に表示されますが、他のビューア(クライアントの新しいシステム、ウィンドウの画像およびFAXビューア)では表示されません。バイナリデータを手動で確認しましたが、すべてのタグに問題がないようです。誰かがそれを分析して、もしあれば、それの何が悪いのか教えてくれるアプリを推薦できますか?

また、わかりやすくするために、データベースに個別に保存されている画像に関するデータを変換してコピーするだけで、画像を自分で編集するのではないので、混乱することはないと確信しています。 。

UDPATE: 興味のある人のために、ここに良いファイルと悪いファイルのタグがあります:

不良
タグタイプ長さ値
256画像幅SHORT11652257
画像長SHORT1704258
サンプルあたりのビット数
SHORT11259圧縮SHORT14262
フォトメトリックSHORT10266
充填順序SHORT11273
ストリップオフセットLONG1210(d2 16進数)
274方向
SHORT13277ピクセルあたりのサンプル数SHORT11278ストリップあたりの行数
SHORT1450279
ストリップのバイト数LONG17264(1c60 16進数)282X
解像度RATIONAL1 <194> 200/1 = 200.000
283Y解像度RATIONAL1<202> 200/1 =200.000284
平面構成SHORT11296
解像度単位SHORT12


適切なタグタイプ長さ値254新しいサブファイルタイプLONG10
(0 Hex)
256画像幅SHORT 11193257
画像長SHORT1788258
サンプルあたりのビット数
SHORT11259圧縮SHORT14262
フォトメトリックSHORT10266
フィルオーダーSHORT1
1270画像の説明ASCII45256273
ストリップオフセットLONG11118(45e Hex)
274方向SHORT 11277
ピクセルあたりのサンプルSHORT11278
ストリップあたりの行LONG1788(314 Hex)
279ストリップバイトカウントLONG1496(1f0 16進数)
280最小サンプル値SHORT 10281
最大サンプル値SHORT11282X解像度RATIONAL1
<301> 200/1 = 200.000283Y解像度RATIONAL1
<309> 200/1 = 200.000284
平面構成SHORT11293
グループ4オプションLONG10(0 Hex)
296解像度単位SHORT 1 2

4

5 に答える 5

3

通常、これは tiff が 6.0 標準の JPEG エンコーディングを使用しているためです。これはその後すぐに放棄されました。タグ 259 を見てください。タグが 6 の場合、それが問題です。JPEG は「新しい」スキーム 7 でエンコードする必要があります。標準ライブラリは、Windows に付属するものを含め、古いものを読み取りません。

libtiff (または libtiff を使用するライブラリまたはプログラムのいずれか、ほとんどの場合) を使用してこれらを読み取ることができますが、libtiff ではデフォルトでスキーム 6 (OJPEG) が意図的に無効にされています。libtiff を有効にするには、パッチを適用して再コンパイルする必要があります。ここに手順のリンクがあります

于 2009-07-09T14:00:17.220 に答える
1

LibTIFF might be helpful. Problems viewing Tiff's are often caused by the compression used. I'd look into that.

于 2009-07-09T13:44:04.760 に答える
1

悪い画像の RowsPerStrip は 450 で、画像の長さ (高さ) である 704 よりも小さいです。これは、画像に 2 つのストリップが必要であることを意味します。このため、StripOffsets と StripByteCounts のカウントは両方とも 2 でなければなりません。これらは、ストリップ データが配置されているファイル オフセットを示します。これらのオフセットが欠落している場合、最初のストリップのみがデコード可能になります。

于 2010-05-26T00:19:57.673 に答える
0

ImageMagickを試してみる価値があります。私の理解では、TIFFはかなり複雑なファイル形式であり、すべての人がこの形式を完全に実装しているわけではありません。

于 2009-07-09T13:44:01.343 に答える
0

TIFF は非常に複雑な形式です。エンコードできるデータの豊富さ (さまざまなピクセル形式、さまざまなエンコーダー) だけでなく、ファイル形式自体の豊富さ (何でも保持できる一般的な構造) のためでもあります。これは基本的に、これまでのイメージングで思いついたすべてのアイデアのゴミ捨て場です。:-)

.NET 3.0 の WPF Imaging ライブラリを強くお勧めします。その Tiff デコーダーは、すべてのピクセル フォーマットをサポートしているわけではありませんが、非常に堅牢で、すべてのメタ データにアクセスするための簡単なインターフェイスを備えています。

于 2009-07-09T18:18:47.697 に答える