ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して寸法を変更せずに PDF から高解像度の画像を抽出する方法

Python を使用して寸法を変更せずに PDF から高解像度の画像を抽出する方法

Susan Sarandon
リリース: 2024-10-22 07:53:30
オリジナル
755 人が閲覧しました

How to Extract High-Resolution Images from PDFs Using Python without Altering Dimensions?

リサンプリングせずに Python で PDF からネイティブ解像度の画像を抽出する

レイアウトを維持しながらネイティブ解像度と形式で PDF から画像を抽出することは可能です。挑戦です。ただし、Python の PyMuPDF モジュールは簡単な解決策を提供します。

PyMuPDF の使用

PyMuPDF は、高解像度を確保し、元の形式 (TIFF など) を維持して画像を PNG ファイルとして出力できます。 、JPEG)。次のコードはその使用法を示しています。

<code class="python">import fitz
doc = fitz.open("file.pdf")
for i in range(len(doc)):
    for img in doc.getPageImageList(i):
        xref = img[0]
        pix = fitz.Pixmap(doc, xref)
        if pix.n < 5:       # GRAY or RGB
            pix.writePNG("p%s-%s.png" % (i, xref))
        else:               # CMYK
            pix1 = fitz.Pixmap(fitz.csRGB, pix)
            pix1.writePNG("p%s-%s.png" % (i, xref))
            pix1 = None
        pix = None</code>
ログイン後にコピー

fitz 1.19.6 の修正バージョン

fitz の最新バージョン (1.19.6) では、次の変更が加えられています。次のコードを使用できます:

<code class="python">import os
import fitz
from tqdm import tqdm

workdir = "your_folder"

for each_path in os.listdir(workdir):
    if ".pdf" in each_path:
        doc = fitz.Document((os.path.join(workdir, each_path)))

        for i in tqdm(range(len(doc)), desc="pages"):
            for img in tqdm(doc.get_page_images(i), desc="page_images"):
                xref = img[0]
                image = doc.extract_image(xref)
                pix = fitz.Pixmap(doc, xref)
                pix.save(os.path.join(workdir, "%s_p%s-%s.png" % (each_path[:-4], i, xref)))</code>
ログイン後にコピー

この変更されたコードは、進行状況バーの表示に tqdm を利用し、画像の抽出と保存のプロセスを最適化します。

以上がPython を使用して寸法を変更せずに PDF から高解像度の画像を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート