Extrahieren Sie Bilder aus PDF-Dateien mit Python

Lakshay Kapoor 10 Oktober 2023
  1. Installieren Sie die Bibliothek PyMuPDF in Python
  2. Extrahieren Sie Bilder aus einer PDF-Datei in Python
Extrahieren Sie Bilder aus PDF-Dateien mit Python

Sie können mit Python viele Operationen mit externen Dateien und Quellen ausführen. Eine der Operationen ist das Extrahieren von Bildern aus PDF-Dateien in Python, was sehr nützlich ist, wenn das PDF zu lang ist und nicht manuell verwaltet werden kann.

Diese Anleitung zeigt Ihnen, wie Sie in Python Bilder aus PDF-Dateien extrahieren.

Installieren Sie die Bibliothek PyMuPDF in Python

Um diese Operation auszuführen, muss man die Bibliothek PyMuPDF in Python installieren. Diese Bibliothek hilft dem Benutzer beim Umgang mit Dateien in den Formaten PDF, XPS, FB2, OpenXPS und EPUB. Es ist eine sehr vielseitige Bibliothek, die für ihre hohe Leistung und Rendering-Qualität bekannt ist. In Python ist es jedoch nicht vorinstalliert. Führen Sie den folgenden Befehl aus, um diese Bibliothek zu installieren.

pip install PyMuPDF Pillow

Extrahieren Sie Bilder aus einer PDF-Datei in Python

Um Bilder aus einer PDF-Datei zu extrahieren, gibt es ein schrittweises Verfahren:

  • Zuerst werden alle notwendigen Bibliotheken importiert.
import fitz
import io
from PIL import Image
  • Anschließend wird der Pfad zu der Datei definiert, aus der die Bilder extrahiert werden sollen. Die Datei wird mit der Funktion open() aus dem Modul fitz geöffnet.
file_path = "randomfile.pdf"
open_file = fitz.open(file_path)
  • Danach wird jede Seite der PDF-Datei iteriert und geprüft, ob auf jeder Seite Bilder vorhanden sind.
for page_number in range(len(open_file)):
    page = pdf_file[page_number]
    list_image = page.getImageList()

    if list_image:
        print(f"{len(list_image)} images found on page {page_number}")
    else:
        print("No images found on page", page_number)

In diesem Schritt wird die Funktion getImageList() verwendet, um alle Bilder in Form von Bildobjekten als Liste von Tupeln zu extrahieren.

  • Dann werden alle zusätzlichen Informationen über das Bild, wie die Bildgröße und die Bilderweiterung, mit der Funktion extractImage() zurückgegeben. Dieser Schritt wird als Iteration innerhalb der ersten Iteration selbst ausgeführt.
for image_number, img in enumerate(page.getImageList(), start=1):

    xref = img[0]

    image_base = pdf_file.extractImage(xref)
    bytes_image = image_base["image"]

    ext_image = base_image["ext"]

Nachdem Sie all diese Schritte in einem einzigen Programm zusammengefasst haben, können Sie ganz einfach alle Bilder aus einer PDF-Datei extrahieren.

Angenommen, die Datei randomfile.pdf enthält 5 Seiten. Auf diesen 5 Seiten befindet sich nur 1 Bild auf der letzten, zum Beispiel der 5. Seite. Die Ausgabe sieht also so aus.

0 images found on page 0
0 images found on page 1
0 images found on page 2
0 images found on page 3
0 images found on page 4
1 images found on page 5
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Verwandter Artikel - Python PDF