Wie extrahiere ich Bilder aus PDFs ohne Resampling in Python?
So extrahieren Sie Bilder aus einem PDF-Dokument mit ihrer ursprünglichen Auflösung und ihrem ursprünglichen Format, ohne Für das Resampling können Sie das PyMuPDF-Modul verwenden. Mit diesem Python-Modul können Sie PDF-Dateien effizient verarbeiten und deren Inhalt bearbeiten. So können Sie PyMuPDF zum Extrahieren von Bildern verwenden:
<code class="python">import fitz doc = fitz.open("input.pdf") for page_num in range(len(doc)): for img in doc.getPageImageList(page_num): xref = img[0] pix = fitz.Pixmap(doc, xref) if pix.n < 5: # Check if it's grayscale or RGB pix.writePNG(f"page_{page_num}_img_{xref}.png") else: # Convert CMYK to RGB before saving pix1 = fitz.Pixmap(fitz.csRGB, pix) pix1.writePNG(f"page_{page_num}_img_{xref}.png")</code>
In diesem Code durchlaufen wir die Seiten und Bilder im PDF. Die Variable „xref“ stellt die eindeutige Kennung des Bildes dar. Abhängig vom Farbraum des Bildes (RGB oder CMYK) schreiben wir das PNG-Bild entweder direkt oder konvertieren CMYK in RGB, bevor wir es speichern.
Alternativ können Sie, wenn Sie fitz Version 1.19.6 verwenden, verwenden Verwenden Sie den folgenden Code, um die Extraktion mit einem Fortschrittsbalken zur besseren Sichtbarkeit durchzuführen:
<code class="python">import os import fitz from tqdm import tqdm workdir = "path_to_pdf_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, f"{each_path[:-4]}_p{i}-{xref}.png"))</code>
Mit diesen Codeausschnitten können Sie Bilder aus einer PDF-Datei extrahieren und dabei ihre ursprüngliche Auflösung und ihr ursprüngliches Format beibehalten.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich hochauflösende Bilder aus PDFs ohne Resampling mit Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!