Bilder konvertieren mit Pillow – Praxisbeispiel

Die Python Bibliothek Pillow ist im Umgang mit Bildern vielseitig einsetzbar (Link zur Dokumentation). In diesem Artikel zeige ich die Entwicklung eines Skripts, das Bilder konvertieren kann. Das vorgestellte Programm kann in einen Ordner mit Bildern ausgeführt werden. Alle dort gefunden Bilder im PNG Format werden automatisch in das JPEG Format umgewandelt. Anschließend werden die originalen Dateien gelöscht.

Für die Bearbeitung der Bilder und den Dateizugriff binden wir zuerst die Module os und PIL (Pillow) ein.

Anschließend ermitteln wir zuerst den aktuellen Dateipfad mit der Funktion os.path.dirname(). Wir durchlaufen mit einer Schleife alle Dateien im Ordner und überprüfen, ob diese die Endung ".png" haben. Ist dies der Fall, versuchen wir die Datei zu öffnen. Zur Ermittlung des neuen Dateinamens verwenden wir os.path.splitext(). Wir erhalten den Namen der aktuellen Datei und versehen ihn mit einer neuen Dateiendung (outfile). Anschließend erzeugen wir ein neues Bild und konvertieren die originalen Bildinhalte in das RGB Format. Wir speichern das umgewandelte Bild mit dem neuen Namen und schließen die Originaldatei. Sollte bei dem Vorgang ein Lese – oder Schreibfehler auftreten, fangen wir diesen ab, geben Fehlermeldungen aus und beenden das Programm. Es könnte zum Beispiel ein Schreibfehler auftreten, wenn der Anwender nicht über Schreibrechte für den aktuellen Ordner verfügt.

Wir haben nun in unserem Ordner neue Bilddateien im gewünschten Format. Die originalen Dateien sind jedoch noch vorhanden. Um diese zu löschen, verwenden wir eine zweite Schleife. Wieder werden alle Dateien durchlaufen und deren Endung überprüft. Sofern diese dem PNG Format entspricht, wird versucht, die Datei zu löschen. Wie schon beim Speichern, muss auch hier der Benutzer über die notwendigen Rechte verfügen. Ist dies nicht der Fall, wird die entsprechende Ausnahme abgefangen, es werden Fehlermeldung ausgegeben und das Programm beendet.

Wir haben mit unserem Skript eine Konvertierung von Dateien im PNG Format ins JPEG Format durchgeführt. Es sollte erwähnt werden, dass das PNG Format keine Transparenz unterstützt. Sollten die Bilder über einen Alpha Kanal verfügen, gehen diese Daten bei der Umwandlung verloren.

Das Beispiel kann mit folgendem Befehl ausgeführt werden:

python3 python_pillow_convert.py

Das komplette Beispiel herunterladen: python_pillow_convert.zip

Über Anton Neururer 31 Artikel
Ich bin Programmierer und Blogger. Themen die mich besonders interessieren sind Python, C++ und Javascript. Des Weiteren befasse ich mich mit Fraktalen.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen