PDF から画像を抽出

PDF に埋め込まれたすべての画像を取り出し、個別または .zip でダウンロードできます。アップロードなし。

PDF をここにドロップ または
  1. PDF をドロップするか「参照」をクリック。
  2. 「画像を抽出」をクリック — サムネイルグリッドが表示されます。
  3. 任意のサムネイルをクリックしてその画像をダウンロード、またはバンドル用に「すべて .zip でダウンロード」。
  4. 画像は PNG として保存されます。元のエンコーディングはまずキャンバスにデコードされます。
何ができるのか?

PDF の各ページを走査し、すべての paintImageXObject 操作を見つけ、基となる画像ビットマップを抽出します。抽出された各画像はキャンバスを介して PNG に正規化されます — JPEG ソースは元の圧縮を失いますが、出力ピクセルは PDF がレンダリングしたものと同じです。サポートされていないコーデック(JBIG2、ファックス用 CCITT、JPEG 2000 用 JPX)で保存された画像はカウントには含まれますがデコードされません — それらには pdfjs-dist 以外の専用コーデックライブラリが必要です。

一般的な問題

PDF 画像抽出は本質的にコーデック依存です。ほとんどの PDF は機能します — これらは抽出が予期しない結果を生む可能性があるパターンです。

  • サポートされていない画像コーデック。 JBIG2 (一部のスキャン文書)、CCITT (ファックススタイルのスキャン)、JPEG 2000 (JPX) はデコードされません。ステータスラインがスキップされた数を報告します。これらを抽出するには、代わりに /pdf-to-images でレンダリングしてください — それは画像を含むページ全体をラスタライズします。
  • 元の JPEG 品質が失われる。 透明度を保持し、二重圧縮アーティファクトを避けるため、画像は PNG としてエクスポートされます。ソースが PDF に埋め込まれた JPEG の場合、PNG 出力はサイズが大きくなりますが、pdf-lib がデコードしたものとピクセル単位で同じです。
  • インライン画像が見逃される。 一部の PDF は XObjects の代わりにインライン画像データ(BI/ID/EI 演算子)を使用します — 通常は非常に小さな画像です。v1 はこれらを抽出しません。ほとんどの写真とスクリーンショットは XObjects であり、正しく抽出されます。
  • 同じ画像が複数回。 PDF は複数のページから 1 つの画像 XObject を参照することがよくあります。v1 は paintImageXObject 呼び出しごとに画像を 1 回抽出するため、複製されたロゴは使用ごとに 1 回表示されます。必要に応じてファイル名またはハッシュで重複排除してください。
  • 暗号化された PDF。 パスワード保護された PDF はパスワードなしでは開けません。所有者パスワードがある場合は、最初に /pdf-unlock を通してください。
  • 非常に大きな PDF。 抽出された各画像は、クリアまたは離れるまでブラウザメモリに残ります。何百もの高解像度画像を含む PDF は、数百 MB の RAM を使用する可能性があります。.zip ダウンロードを迅速に使用し、完了したらクリアをクリックしてください。
よくある質問

なぜ画像は JPG ではなく PNG なのですか?

PNG は透明度を保持し、再エンコーディングのアーティファクトを避けます。ピクセルは元と同じです。PNG はロスレスのため、ファイルが大きくなります。容量を節約するには、結果を WebP モードで /image-compress を通してください。

各画像がどのページから来たかをどう判断しますか?

ファイル名はパターン `pageN-imgM.png` に従います — N はソースページ番号、M はそのページ内のシーケンス番号です。PDF に表示される順序を見るには、ファイル名でソートしてください。

暗号化された画像はスクランブルされて出てきますか?

暗号化されていない PDF 内の画像データは別途暗号化されておらず — 通常通りデコードされます。PDF 自体が暗号化されている場合、ツールはそれを全く読み取れません(上記の暗号化 PDF の注を参照)。

なぜカウントが表示される画像より多いのですか?

一部の PDF は表示される画像ごとに複数の画像 XObjects を使用します(例:別のグレースケール画像として保存されたソフトマスクのアルファチャンネル)。v1 はそれぞれを抽出します — ソフトマスクは合成時にメイン画像を正しく見せるものですが、それ単独では白黒のシルエットとして表示されます。

私の PDF はアップロードされますか?

いいえ。すべてはブラウザで実行されます — PDF は pdfjs-dist によって解析され、画像ビットマップはキャンバスを介してレンダリングされ、すべてクライアントサイドです。ネットワーク要求は発生しません。

どのくらい大きな PDF から抽出できますか?

ブラウザが遅く感じ始めるまで約 100 MB の PDF まで。ハードリミットはタブのメモリです — 抽出が OOM したら、/pdf-split で PDF を分割し、各セクションを個別に実行してください。