pdfimagesを使用して画像を抽出する:1ページあたり3つの画像を取得する:.jp2、.png、.jb2e

pdfimagesを使用して画像を抽出する:1ページあたり3つの画像を取得する:.jp2、.png、.jb2e

pdfimages -all.pdfファイル(各ページはテキストです)で使用すると、pdfの各ページに対して3つの画像が得られます。

Foo-001-000.jp2
Foo-001-002.png
Foo-001-002.jb2e

最初のファイルはほとんど空白ですが、不思議な背景と時々テキストが含まれています。 2番目のファイルは白黒で、一種のマスクのように見えます。おそらく、3番目のファイルのテキストがどこにあるのかを識別することができます。 3番目のファイルは、Ubuntuの画像ビューアやGIMPで見ることができません。

を使用すると、-png同じ3つの画像が得られますが、すべて.pngです。 PDFテキストのほとんど(ほぼすべて)は3番目の画像にあります。

pdfimages -list次のようになります。

page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image     829  1254  rgb     3   8  jpx    yes     3659  0   150   150 76.2K 2.5%
   1     1 image     829  1254  rgb     3   8  image  yes     3663  0   150   150 5250B 0.2%
   1     2 mask     1658  2508  -       1   1  image  yes     3663  0   300   300 5250B 1.0%
   2     3 image     934  1254  rgb     3   8  jpx    yes       11  0   150   150 85.6K 2.5%
   2     4 image     934  1254  rgb     3   8  image  yes       15  0   150   150 14.1K 0.4%
   2     5 mask     1868  2508  -       1   1  image  yes       15  0   300   300 14.1K 2.5%
   3     6 image     858  1243  rgb     3   8  jpx    yes       47  0   150   150 78.0K 2.5%
   3     7 image     858  1243  rgb     3   8  image  yes       51  0   150   150 7681B 0.2%

誰かが私がここで得たものとこれら3つの画像を組み合わせて、各ページの単一の画像を取得する方法を理解するのに役立ちますか?または、ページごとに1つの画像のみを抽出するのと同じです。私にとって最も重要な問題は、これらの画像で利用可能な情報をできるだけ維持することです。品質低下を防ぎたいです。

最初のファイル 2番目のファイル 3番目のファイル

答え1

単一の画像をページとして受け取っていると思いましたが、実際には合成物であるという事実に驚きました。雑誌はいくつかの画像がない単純な本よりもグラフィック的に複雑であるため、これは雑誌を保管するために広く使用されています。品質を維持し、最終的に非常に小さなPDFファイルを提供しますが、レンダリングが遅すぎるため、便利ではありません。

今解決策があります。実際にPDFから何も抽出したくありません。 PDFリーダーと同じようにレンダリングしたいです。 Ghostscriptを使用することをお勧めします。次のように動作します。

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r600 -dGraphicsAlphaBits=4 -sOutputFile=./img/img-%03d.png "$pdffilename"

必要に応じて調整してください。

関連情報