PDFから対応ラスター画像をPNGとして抽出
PDFGemは対応するラスター画像を抽出し、新しいPNGとして再出力します。 埋め込みJPEGやPNGなどの元ファイルをバイト単位で復元するものではなく、ページ上のすべての表示要素を見つける保証もありません。
対応する画像オブジェクトとして保存された写真やビットマップを個別に得たい場合は、画像抽出を使います。文字やベクターを含むページ全体の画像が必要なら、PDF→PNG変換を使ってください。
画像抽出の仕組み
- 画像抽出を開き、100MB以下のPDFを選びます。
- ブラウザが全ページの描画命令から対応XObjectとインライン画像を探します。
- 対応するピクセルをデコードし、保存された幅と高さでcanvasに描画します。
- 新しいPNGを作成し、プレビューにピクセル寸法と検出ページを表示します。
- 個別に保存するか、複数ある場合はZIPでまとめて保存します。
処理はブラウザ内で行われ、抽出のためにPDFがPDFGemへ送信されることはありません。ただし、文書、デコード後のピクセル、プレビュー、PNG、ZIPが同じセッションでメモリを使います。
見つかるものと見つからないもの
対象は、写真、画面キャプチャ、スキャン、ロゴなど、独立した画像オブジェクトとして保存された対応ラスターです。描画命令に直接含まれる一部のインライン画像にも対応します。
表示される要素が必ず独立画像とは限りません。グラフはベクター線と文字、ロゴはパス、背景は複数オブジェクトやマスク、透明処理の組み合わせかもしれません。こうした構造は1枚のダウンロード画像として出ない場合があります。
10×10ピクセル未満の画像、未対応またはデコード不能なオブジェクトは除外されます。結果が0件でも、ページに視覚要素がないという意味ではなく、対応画像を抽出できなかったという意味です。
保存寸法は「元ファイル」の保証ではない
プレビューはデコードしたオブジェクトの幅と高さを表示し、新しいPNGもその寸法を使います。これはDPIの保証ではなく、ページ上での実効表示サイズを示すものでもありません。
PDFGemは元の圧縮ストリームをコピーしません。ピクセルをデコードしてブラウザのcanvasから新しいPNGをエンコードします。元のファイル名、JPEG圧縮、メタデータ、カラープロファイル、バイト列は保持されません。マスクなどの関連オブジェクトも別扱いになる場合があります。
画像抽出とページ全体の描画
- 画像抽出:対応するラスターオブジェクトを個別PNGとして取り出します。
- PDF→PNG:文字、ベクター、背景、レイアウトを含む見えるページ全体を1枚に描画します。
合成グラフィックが出ない場合はPDF→PNG変換でページを描画してください。一部ページだけなら先にPDF分割を使い、小さくしたPDFから抽出できます。
画像抽出で実際のプレビューを確認し、必要な結果を確認するまで元のPDFを残しておきましょう。
よくある質問
PDFGemで抽出できる画像は?
各ページの描画命令から、対応するラスター画像XObjectと一部のインライン画像を探します。ベクターパス、文字、すべての合成表示を個別画像として抽出する機能ではありません。
ダウンロードしたPNGは埋め込み元ファイルですか?
いいえ。対応するピクセルをデコードし、保存された寸法でcanvasに描画して新しいPNGを作ります。元のストリーム、名前、圧縮、メタデータ、カラープロファイル、同一バイト列は返しません。
画面に見える画像をすべて見つけられますか?
保証できません。10×10ピクセル未満や対応形式にデコードできないオブジェクトは除外します。ベクター、マスク、レイヤー合成、背景、未対応のPDF構造は個別結果に出ない場合があります。
個別またはZIPでダウンロードできますか?
はい。各結果を個別に保存できます。複数見つかった場合はメインボタンでZIPを作成し、1点だけの場合はそのPNGを直接保存します。
大きなPDFの制限は?
入力は最大100MBです。走査、ピクセルのデコード、プレビュー、ZIP作成はいずれもブラウザのメモリを使うため、大きいPDFや画像の多いPDFは端末によって失敗することがあります。