Python を使用してリサンプリングせずに PDF から画像を抽出
リサンプリングせずにネイティブの解像度と形式を維持しながら PDF ドキュメントからすべての画像を効率的に抽出するにはでは、PyMuPDF モジュールを利用できます。このモジュールは、画像を PNG ファイルとして出力する、画像抽出のための効果的なソリューションを提供します。
PyMuPDF の使用:
<code class="python">import fitz # Open the PDF document doc = fitz.open("file.pdf") # Iterate through the pages for i in range(len(doc)): # Extract images from the current page for img in doc.getPageImageList(i): # Retrieve the image's XREF and create a Pixmap xref = img[0] pix = fitz.Pixmap(doc, xref) # Check if the image is grayscale or RGB if pix.n < 5: # Save the image in PNG format pix.writePNG("p%s-%s.png" % (i, xref)) # If the image is CMYK, convert it to RGB and save else: pix1 = fitz.Pixmap(fitz.csRGB, pix) pix1.writePNG("p%s-%s.png" % (i, xref)) pix1 = None # Release the Pixmaps pix = None</code>
機能強化:
fitz 1.19.6 をサポートするスクリプトの更新バージョンの場合:
<code class="python">import os import fitz from tqdm import tqdm # Specify the work directory workdir = "your_folder" # Iterate through the PDFs in the directory for each_path in os.listdir(workdir): if ".pdf" in each_path: # Open the PDF document 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"): # Extract the image and save as PNG 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>
この強化されたスクリプトは、可視性を高めるための進行状況バーを提供し、一貫したファイル命名規則で抽出された画像を保存します。
以上がPython を使用して元の解像度を維持しながら PDF から画像を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。