Heim >Backend-Entwicklung >Python-Tutorial >Wie extrahiere ich mit Python hochauflösende Bilder aus PDFs, ohne die Abmessungen zu ändern?

Wie extrahiere ich mit Python hochauflösende Bilder aus PDFs, ohne die Abmessungen zu ändern?

Susan Sarandon
Susan SarandonOriginal
2024-10-22 07:53:30742Durchsuche

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

Extrahieren von Bildern mit nativer Auflösung aus PDFs in Python ohne Resampling

Das Extrahieren von Bildern aus PDFs mit ihrer nativen Auflösung und ihrem nativen Format unter Beibehaltung des Layouts ist möglich eine Herausforderung. Das PyMuPDF-Modul von Python bietet jedoch eine unkomplizierte Lösung.

Verwendung von PyMuPDF

PyMuPDF kann Bilder als PNG-Dateien ausgeben, wodurch eine hohe Auflösung gewährleistet und das Originalformat (z. B. TIFF) beibehalten wird , JPEG). Der folgende Code demonstriert seine Verwendung:

<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>

Geänderte Version für Fitz 1.19.6

Für die neueste Version von Fitz (1.19.6) wurde Folgendes geändert Code kann verwendet werden:

<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>

Dieser modifizierte Code nutzt tqdm für die Anzeige des Fortschrittsbalkens und optimiert den Prozess der Bildextraktion und -speicherung.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit Python hochauflösende Bilder aus PDFs, ohne die Abmessungen zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn