DOBON.NET DOBON.NETプログラミング掲示板過去ログ

.NET freamwork で TIFF の Compression 形式を取得したい

環境/言語:[VS2005 WindowsXP .NET2.0]
分類:[.NET]

ここには始めて投稿します。よろしくお願いします。

TIFF ファイルの圧縮属性(?)を取得したいです。
画像を LZW 形式や CCITT G4 形式の TIFF で保存することは .NET freamwork で
System.Drawing.Imaging.Encoder.Compression を使ってできますよね。
逆にファイルから何の圧縮の TIFF なのかを知ることはできないんでしょうか?

バイナリの何バイト目をみるとかしか方法は無いんでしょうか?
■No24577に返信(しまごんさんの記事)
> 逆にファイルから何の圧縮の TIFF なのかを知ることはできないんでしょうか?
>
> バイナリの何バイト目をみるとかしか方法は無いんでしょうか?

  TIFFファイルの仕様書見たら書いてありますが・・・

  因みに検索したらすぐにヒットします。
  例えば・・・
  http://robaq.info/tiffcompression.xhtml

以上。
Image オブジェクトなら、各種タグは PropertyItem として格納されているので、PropertyIdList とか PropertiItems とか GetPropertyItem とかから Compression タグを取得できますね。
オショウさん, Hongliangさん
早々にありがとうございます。取得できました!

オショウさんが提示してくださった情報から TAG 番号はがわかり
Hongliangさんのやり方で、以下のように取り出せました。

const int TIFF_TAG_COMPRESSION = 259;
string filePath = "C:\\sample.tif";
Image imageTiff = Image.FromFile(filePath);
PropertyItem propItem = imageTiff.GetPropertyItem(TIFF_TAG_COMPRESSION);
int comp = (int) (propItem.Value[0]);

imageTiff.Dispose();

あきらめて TIFF6.0仕様を熟読しようとしかけてたので、こんなすぐに解決できて
大助かりです。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板