Python: Bilder verkleinern?
Hallo ich hatte ein kleines Programm geschrieben welches mittels
img=img.resize((breite,höhe),PIL.Image.ANTIALIAS)
Bilder vekrleinert. Die Lanczos-Filterung (Antialias) behält nun ja die Auflösung bei, reduziert dabei die Dateigröße. Ich möchte die Dateigröße noch weiter verringern. Geht das dann nur, indem ich Länge bzw. Breite des Bildes verkleiner ?
Aktuell komme ich bei den Eingangsbildern (ca. 5 mb) zu um die 1 Mb bzw. 1,3 Mb durchschnittlich. Ziel wäre eher so 500-800 Kb
1 Antwort
Hier ist ein Beispiel, wie du ein Bild mit Pillow in Python verkleinern könntest:
Dieser Code öffnet das Bild mit dem Namen "mein_bild.jpg" und verkleinert es auf eine Breite und Höhe von 200 Pixeln. Die verkleinerte Version des Bildes wird dann als "mein_bild_verkleinert.jpg" gespeichert. Beachte aber, dass die thumbnail-Funktion von Pillow das Bild möglicherweise nicht exakt auf die angegebene Größe verkleinert, sondern es auf die nächstkleinere Größe, die unterhalb der angegebenen Größen bleibt, passt. Wenn du die exakte Größe des Bildes kontrollieren möchtest, kannst du stattdessen die resize-Funktion von Pillow verwenden.
Grüße

Ok danke probier ich mal aus. Es wäre für meinen Fall ggf. praktisch erst die Lanczos und danach ggf. die thumbnail darüber anzuwenden. So würde man in einem ersten Schritt bereits deutlich komprimieren ohne Länge Breite anzupassen. Sollte man das danach noch tun müssen, die thumbnail hinterher. Ich teste das mal.