Viele Bilder, die ich in meiner Sammlung habe, brauche ich nicht in der Originalgröße mehreren MegaBytes. Daher reduziere ich alle diese Bilder auf eine maximale Breite oder maximale Höhe von 1.024 Pixel.
In der Konsole erledige ich diese Aufgabe mit dem Tool ffprobe und muss mich mehr oder weniger um nichts kümmern. In Python sieht auch das anders aus.
Der folgende Codeschnipsel, der noch stark verbesserungswürdig ist, erledigt diese Aufgabe.
In der Konsole erledige ich diese Aufgabe mit dem Tool ffprobe und muss mich mehr oder weniger um nichts kümmern. In Python sieht auch das anders aus.
Der folgende Codeschnipsel, der noch stark verbesserungswürdig ist, erledigt diese Aufgabe.
Code:
import os
import pathlib
from PIL import Image
import PIL
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():
imgfile = Image.open(rf"{bilddatei}")
# Breite x Höhe.
# Ausgabe in Tuple.
# Der Maximalwert ist 1024 Pixel für Breite oder Höhe - je nach dem.
width, height = imgfile.size
if width > 1024 or height > 1024:
# Berechnung auf Grundlage des Maximalwertes von 1024
if width >= height:
verhaeltnis = height * 100 / width
widthnew = 1024
heightnew = verhaeltnis * widthnew / 100
newsize = (int(widthnew), int(heightnew))
imgfile = imgfile.resize(newsize)
imgfile = imgfile.save(bilddatei)
elif height > width:
verhaeltnis = width * 100 / height
heightnew = 1024
widthnew = verhaeltnis * heightnew / 100
newsize = (int(widthnew), int(heightnew))
imgfile = imgfile.resize(newsize)
imgfile = imgfile.save(bilddatei)
os.chdir("..")