Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Python-Schnipsel] Bilder auf eine maximale Seitenbreite/-höhe verkleinern
#1
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.

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("..")
Zitieren Return to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste