2009-07-09 15 views
4

私はいくつかのデータ、主にTiff画像の束を変換するプログラムを書いています。 Tiffsの中には小さな問題があるようだ。一部の視聴者(クライアントの古いシステムであるIrfanview)ではうまく表示されますが、他のユーザーでは表示されません(クライアントの新しいシステム、ウィンドウの画像とFAXビューア)。私は手動でバイナリデータを見て、すべてのタグがOKと思われる。誰もがそれを分析することができ、何か、それが間違っている場合は私に教えてアプリをお勧めできますか?Tiff Analyzer

また、わかりやすくするために、データベースに別々に保存されている画像のデータを変換して画像をコピーしていますが、画像を自分で編集しているわけではありません。それらを台無しにしないでください。

UDPATE:ここに興味がある人々のために は、タグは良い面と悪いファイルから、次のとおりです。

BAD
タグタイプ長さ値
256画像の幅SHORT 1 1652
257画像の長さSHORT 1 1~4
262光度SHORT 1 0
259圧縮SHORTショートサンプル当たり704
258ビット266(16進数D2)注文SHORT 1 1
273ストリップオフセットLONG 1 210
274 SHORTピクセル毎のオリエンテーションSHORT 1つの3
277サンプルストリップSHORT毎1 1
278行1つの450
279のストリップバイト・カウントを記入LONG 1 7264(1c60ヘキサン)
282 X解決RATIONAL 1 < 194> 1分の200 = 200.000
283 Y分解能RATIONAL 1 < 202> 1分の200 = 200.000
284平面構成SHORT 1
296解決部SHORT 1 2

グッド
タグタイプ長さ値
254新しいサブファイルタイプLONG 1 0(0ヘックス)
256画像の幅SHORT 1 1193
257サンプルあたりの画像の長さSHORT 1 788
258ビットSHORT 1 1
259の圧縮SHORT 1 4
262測光SHORT 1 0
266フィル注文SHORT 1 1
270画像の説明ASCII 45 256
273ストリップオフセットLONG 1 1118(45E六角)
274オリエンテーションSHORT 1
SHORTピクセル当たり277のサンプルストリップLONG当たり1
278行1 788(314ヘックス)
279ストリップバイトがLONG 1をカウント496(1F0ヘキサン)
280分のサンプル値SHORT 1 0
281最大サンプル値SHORT 1
282 X解決RATIONAL 1 < 301> 200/1 = 200.000
283 Y分解能RATIONAL 1 < 309> 200/1 = 200である。000
284面構成SHORT 1 1
293グループ4オプションLONG 1 0(0ヘックス)
296分解能単位SHORT 1 2

答えて

0

のImageMagickに行くを与える価値があります。私の理解は、TIFFはかなり複雑なファイルフォーマットであり、誰もが完全にフォーマットを実装しているわけではないということです。

1

LibTIFFが役に立ちます。 Tiffの表示に関する問題は、しばしば使用される圧縮によって引き起こされます。私はそれを調べるだろう。

3

これは通常、tiffが6.0規格のJPEGエンコードを使用しているためです。これは、後で放棄されました。タグ259を見てください.6の場合、それが問題です。 JPEGは "新しい"方式で符号化する必要があります。7.標準ライブラリは、Windowsに付属のものを含め、古いものを読み込みません。

libtiff(またはlibtiffを使用するライブラリまたはプログラムのいずれか)を使用して読むことができますが、スキーム6(OJPEG)はデフォルトでlibtiffで意図的に無効になっています。それを有効にするには、libtiffをパッチして再コンパイルする必要があります。 Here's a link with instructions

+0

タグ259は4です(最小コメント長の要件を満たしています...一口) – Kevin

+0

問題のある画像の幅は8で割り切れますか?グループ4の圧縮はそれをサポートするはずですが、誰もがそれをサポートしているとは限りません... –

+0

いいえ、それは1652.メインの質問テキストの更新を参照してください – Kevin

0

TIFFは、エンコードできるデータの豊富さ(さまざまなピクセル形式、さまざまなエンコーダ)だけでなく、ファイル形式の豊富さ自体(保持できる一般的な構造何か)。それは基本的に私たちがイメージングに持っていたすべてのアイデアのためのゴミ箱です。 :-)

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

1

不良イメージのRowsPerStripは450で、イメージの長さ(高さ)は704未満です。これは、イメージが2つのストリップを持たなければならないことを意味します。このため、StripOffsetsとStripByteCountは両方ともカウントが2でなければなりません。これらは、ストリップデータが配置されているファイルのオフセットを示します。これらのオフセットがない場合、最初のストリップのみがデコード可能です。

関連する問題