11

TIFF 画像が CCITT T.6 (Group 4) 形式であるかどうかを知るにはどうすればよいですか?

4

4 に答える 4

15

この (C#) コード例を使用できます。圧縮タイプを示す値を返します。

1: 圧縮なし
2: CCITT Group 3
3: ファクシミリ互換 CCITT Group 3
4: CCITT Group 4 (T.6)
5: LZW

public static int GetCompressionType(Image image)
{
    int compressionTagIndex = Array.IndexOf(image.PropertyIdList, 0x103);
    PropertyItem compressionTag = image.PropertyItems[compressionTagIndex];
    return BitConverter.ToInt16(compressionTag.Value, 0);
}
于 2009-10-13T15:46:21.313 に答える
10

これらのリンクを確認できます

タグ 259 (hex 0x0103) は、圧縮方法に関する情報を格納します。

--- 圧縮タグ = 259 (103) タイプ = 単語 N = 1 デフォルト = 1。

1 = 圧縮は行いませんが、データを可能な限りぎっしりとバイトに詰め込み、行の末尾以外に未使用のビットを入れないようにします。バイトはバイトの配列として格納されます。BitsPerSample <= 8 の場合、BitsPerSample > 8 かつ <= 16 の場合は word、BitsPerSample > 16 かつ <= 32 の場合は dword です。8 ビットを超えるデータのバイト順序は、それと一致している必要があります。 TIFF ファイル ヘッダー (バイト 0 および 1) で指定されます。行はバイト境界で開始する必要があります。

2 = CCITT グループ 3 1 次元修正ハフマン ランレングス エンコーディング。ALGRTHMS.txt を参照してください BitsPerSample は 1 でなければなりません。このタイプの圧縮は 2 値画像 (FAX 画像など...) に対してのみ定義されているためです。

3 = ファクシミリ互換 CCITT グループ 3、「ドキュメント送信用のグループ 3 ファクシミリ装置の標準化」、勧告 T.4、ボリューム VII、ファシクル VII.3、テレマティック サービスの端末機器およびプロトコル、国際電信および電話諮問委員会 (CCITT)、ジュネーブ、1985 年、16 ~ 31 ページ。各ストリップは、バイト境界で開始する必要があります。(ただし、イメージは単一のストリップである可能性があることを思い出してください。) ストリップの最初の行ではない行は、バイト境界で開始する必要はありません。データはワードではなくバイトとして格納されます - バイト反転は許可されていません。1D と 2D コーディングなどのグループ 3 オプションについては、Group3Options フィールドを参照してください。

4 = ファクシミリ互換 CCITT グループ 4、「グループ 4 ファクシミリ装置のファクシミリ コーディング スキームおよびコーディング制御機能」、勧告 T.6、ボリューム VII、ファシクル VII.3、テレマティック サービスの端末機器およびプロトコル、The International Telegraph and Telephone Consultative Committee (CCITT)、ジュネーブ、1985 年、40 ~ 48 ページ。各ストリップはバイト境界で開始する必要があります。ストリップの最初の行ではない行は、バイト境界で開始する必要はありません。データはワードではなくバイトとして保存されます。グループ 4 のオプションについては、Group4Options フィールドを参照してください。

5 = LZW 圧縮、グレースケール、マップされたカラー、およびフル カラー イメージ用。

于 2009-10-10T17:31:00.673 に答える
4

イメージのImageMagickスイートidentify -verboseから実行できます。出力で「Compression: Group4」を探します。

于 2009-10-10T17:20:46.577 に答える
0

アップデート:

SO、libtiff前に述べたリンクからライブラリをダウンロードしました。私が見たものから、次のことができます:(未テスト)

int isTIFF_T6(const char* filename)
{
TIFF* tif= TIFFOpen(filename,"r");
TIFFDirectory *td = &tif->tif_dir;
if(td->td_compression == COMPRESSION_CCITTFAX4) return 1;
return 0;
}

前: このページには、この形式に関する多くの情報と C のコードへのリンクがあります。

ここに抜粋があります:

次の文書は、T.4、T.6、および JBIG をカバーしています。

「ファクシミリ システムの電子画像処理に関する標準のレビュー」Journal of Electronic Imaging、Vol. 1、No. 1、5-21 ページ、1992 年 1 月。

ソース コードは、TIFF ツールキットの一部として入手できます。バイナリ イメージの TIFF 画像圧縮技術には、CCITT T.4 および T.6 が含まれます。

ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4beta035-tar.gz 連絡先: sam@engr.sgi.com

続きを読む: http://www.faqs.org/faqs/compression-faq/part1/section-16.html#ixzz0TYLGKnHI

于 2009-10-10T16:57:26.063 に答える