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!).
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("..")