Einführung
In diesem Lab werden Sie durch den Prozess des Generierens von Miniaturbildern aus vorhandenen Bildern mit der Matplotlib-Bibliothek in Python geführt. Miniaturbilder sind kleinere Versionen von Bildern, die zur Anzeige eines Vorschaus der größeren Bilder verwendet werden können. Matplotlib ist von der Pillow-Bibliothek für das Lesen von Bildern abhängig und unterstützt alle von Pillow unterstützten Formate.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.
Installieren der erforderlichen Bibliotheken
Zunächst müssen Sie die erforderlichen Bibliotheken installieren. Öffnen Sie Ihr Terminal und geben Sie die folgenden Befehle ein, um Matplotlib und Pillow zu installieren:
pip install matplotlib
pip install pillow
Importieren von Bibliotheken
In diesem Schritt importieren Sie die Bibliotheken, die Sie im vorherigen Schritt installiert haben. Sie müssen ArgumentParser und Path aus den Modulen argparse und pathlib respektive importieren. Importieren Sie auch die Module sys und image aus den Modulen sys und matplotlib.image respektive.
from argparse import ArgumentParser
from pathlib import Path
import sys
import matplotlib.image as image
Argumente analysieren
In diesem Schritt werden Sie die an Ihr Programm übergebenen Argumente analysieren. Sie müssen ein ArgumentParser-Objekt erstellen und ein Argument namens imagedir hinzufügen. Dieses Argument gibt den Pfad zum Verzeichnis an, das die Bilder enthält. Sie können den type-Parameter verwenden, um den Datentyp des Arguments anzugeben. In diesem Fall sollte das Argument vom Typ Path sein.
parser = ArgumentParser(description="Build thumbnails of all images in a directory.")
parser.add_argument("imagedir", type=Path)
args = parser.parse_args()
Verzeichnis überprüfen
In diesem Schritt überprüfen Sie, ob das angegebene Verzeichnis existiert. Wenn das Verzeichnis nicht existiert, beenden Sie das Programm und geben Sie eine Fehlermeldung aus.
if not args.imagedir.is_dir():
sys.exit(f"Could not find input directory {args.imagedir}")
Ausgabeverzeichnis erstellen
In diesem Schritt erstellen Sie ein Verzeichnis namens thumbs, in dem die Vorschaubilder gespeichert werden. Wenn das Verzeichnis bereits existiert, wird es nicht erneut erstellt.
outdir = Path("thumbs")
outdir.mkdir(parents=True, exist_ok=True)
Vorschaubilder generieren
In diesem Schritt generieren Sie Vorschaubilder für alle Bilder im angegebenen Verzeichnis. Sie verwenden eine for-Schleife, um über alle Bilder mit der .png-Erweiterung im angegebenen Verzeichnis zu iterieren. Für jedes Bild generieren Sie ein Vorschaubild und speichern es im thumbs-Verzeichnis.
for path in args.imagedir.glob("*.png"):
outpath = outdir / path.name
fig = image.thumbnail(path, outpath, scale=0.15)
print(f"saved thumbnail of {path} to {outpath}")
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie mit Matplotlib in Python Vorschaubilder aus vorhandenen Bildern generieren. Sie haben gelernt, wie Sie Bibliotheken importieren, Argumente analysieren, Verzeichnisse überprüfen, Ausgabeverzeichnisse erstellen und Vorschaubilder generieren. Indem Sie die Schritte in diesem Lab befolgen, können Sie leicht Vorschaubilder für alle Bilder in einem Verzeichnis generieren.