2

C++ に変換したNed Batchelder の python コードを使用して、pdf ファイルから jpg を抽出することができました。同じ手法を使用して tiff ファイルを抽出できるかどうか疑問に思っています。もしそうなら、それらを見つけるための適切なオフセットとマーカーを知っている人はいますか? ありがとう、デビッド

4

2 に答える 2

3

PDF ファイルには、異なる画像データが含まれている場合があります (驚くことではありません)。

最も一般的なケースは次のとおりです。

  • ファックス データ (CCITT グループ 3 および 4)
  • Deflate または LZW 圧縮ですべて圧縮されたデコード パラメータとオプションのパレットを含む生のラスタ データ
  • JPEGデータ

最近、私 (PDF ライブラリの開発者) は、JBIG2 画像データを含む PDF がますます増えていることに気付き始めました。また、JPEG2000 を PDF に変換できる場合もあります。

*.jpegおそらく外部ライブラリなしで JPEG/JBIG2 / JPEG2000 データを対応する // ファイルに抽出できます*.jp2*.jpx、破損したジェネレーターによって生成されるあらゆる種類の奇妙な PDF に備える必要があります。また、PDF はオブジェクト ストリームを頻繁に使用するため、PDF 用の高度なパーサーを実装する必要があります。

Fax データ (つまり、おそらく TIFF と呼ぶもの) は、少なくとも有効な TIFF にパックする必要があります。たとえば、オープンソースのlibtiffからコードを借りることができます。

そして、生のラスター データが続きます。ライブラリの助けを借りずにそのようなデータを抽出しようとするのは意味がないと思います。もちろんそれもできますが、数か月の作業が必要です。

したがって、すべて同じジェネレーターで作成された一連の PDF から特定の種類の画像データのみを抽出しようとしている場合、そのタスクはおそらく実行可能です。それ以外の場合は、時間、お金、髪を節約し、タスクにライブラリを使用することをお勧めします。

于 2011-08-13T16:14:08.783 に答える
1

PDF ファイルは Jpeg を実際の JPEG (DCT および JPX エンコーディング) として保存するため、ほとんどの場合、データを取り出すことができます。Tiff を使用すると、CCITT データを探します (ただし、データを Tiff にするには、データにヘッダーを追加する必要があります)。http://www.jpedal.org/PDFblog/2010/09/understanding-the-pdf-file-format-images/http://www.jpedal.org/で、PDF ファイルの画像に関する 2 つのブログ記事を書きました。 PDFblog/2011/07/extract-raw-jpeg-images-from-a-pdf-file/これは役立つかもしれません。

于 2011-08-13T16:06:32.143 に答える