Joopi

Normale Version: Andere Bildformate nach jpg konvertieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Grundsätzlich arbeite ich mit Bildern im jpeg-Format. Das betrifft war nicht die raw-Dateien aus der Fotografie, aber eben alle anderen Bilder. Sollte mir andere Bildformate vorliegen, so konvertiere ich diese in jpeg-Format.

Mit dem Tool convert in der Konsole ist das relativ einfach. In Python aber nicht. Hier muss bedacht werden, dass eine echte Konvertiertung nicht stattfindet, sondern ein neues Abspeichern. Dabei treten Probleme auf, die es unter convert so nicht gibt.

So ist z.B. zu beachten, dass png-Bilder einen transparenten Hintergrund haben können, jpeg-Bilder allerdings nicht. Daher ist der Alphakanal eines png-Bildes zu löschen. Das geht mit der Konvertierung von RGBA nach RGB. Ansonsten würde sich ein Bilder neu unter dem jpeg-Format nicht speichern lassen, wenn es in einem Pythonskript erfolgen soll.

Folgender Codeschnipsel läuft im Moment bei mir reibungslos (die Ursprungsdatei wird gelöscht!).

Code:
import os
import pathlib
from PIL import Image

for bildordner in pathlib.Path(rename_ordner).iterdir():
    if bildordner.is_dir():
        os.chdir(bildordner)
        for bilddatei in pathlib.Path(os.getcwd()).iterdir():
            if bilddatei.is_file():
                filename, file_extension = os.path.splitext(bilddatei)
                ext = file_extension
                if ext != ".jpg":
                    # print(bilddatei)
                    # print(ext)
                    # print(filename)
                    imgfile = Image.open(rf"{bilddatei}")
                    imgfile = imgfile.convert("RGB")
                    imgfile.save(rf"{filename}{extneu}")
                    os.remove(bilddatei)
        os.chdir("..")