Extrahieren Sie Bilder aus PDF-Dateien mit Python
-
Installieren Sie die Bibliothek
PyMuPDF
in Python - Extrahieren Sie Bilder aus einer PDF-Datei in 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 Modulfitz
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 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