Für die Bildbearbeitung steht in Python unter anderem die Bibliothek Pillow zur Verfügung. Es gibt zwar andere Bibliotheken, die teilweise mehr Möglichkeiten bieten, als dies Pillow vermag, allerdings ist Pillow am weitesten verbreitet.
Die Installation von Pillow kann mit pip
vorgenommen werden:
python3 -m pip install --upgrade Pillow
Bild laden und anzeigen
Um Pillow verwenden zu können, muss diese Bibliothek zunächst importiert werden:
from PIL import Image
Interessant an dieser Importanweisung ist der Umstand, dass nicht Pillow
importiert wird, sondern PIL
. Dies hängt damit zusammen, dass Pillow ein Fork der Bibliothek PIL ist, die bereits seit einiger Zeit nicht mehr weiterentwickelt wird.
Als nächstes wird der Dateiname des zu ladenden Bildes der Variable filename
zugewiesen:
filename = "img_1610.jpg"
Selbstverständlich könnte auch ein Pfad angegeben werden:
filename = "/Users/bodo/Pictures/img_1610.jpg"
Schließlich wird dieses Bild mit Image.open()
geöffnet und mit show()
angezeigt:
with Image.open(filename) as img:
img.show()
Bildgröße ändern
Die aktuelle Bildgröße wird mit img.size
ermittelt:
with Image.open(filename) as img:
print(img.size)
Nebenbei bemerkt: Aufgrund der Dateiendung „jpg“ wird es sich um ein Bild im JPEG-Format handeln. Mit
print(img.format)
könnte man sich dies auch bestätigen lassen.
Kommen wir nun zum Ändern der Bildgröße. Dafür steht size
zur Verfügung. Um die Bildgröße zu 600×400 zu ändern, müssen diese beiden Werte als Tupel übergeben werden:
resized = img.resize((600, 400))
resized.show()
Das in der Größe geänderte Bild könnte auch auf dem Schreibtisch gespeichert werden (hier auf einem macOS-System), wobei als Dateiname „resized_image.jpg“ verwendet wird:
resized = img.resize((600, 400))
resized.save("/Users/bodo/Desktop/resized_image.jpg")
Umwandlung in ein Schwarz-Weiß-Bild
In Python gibt es mehrere Möglichkeiten bzw. Bibliotheken, um ein Farbbild in ein Schwarz-Weiß-Bild umzuwandeln. Und selbstverständlich ist dies auch mit Pillow möglich. Für die Umwandlung steht hier convert()
zur Verfügung:
with Image.open(filename) as img:
grayscale_image = img.convert("L")
grayscale_image.show()
Fazit
Die gezeigten Beispiele zeigen nur einen sehr kleinen Teil dessen, was mit Pillow alles möglich ist. Es lohnt sich, einen Blick in die offizielle Dokumentation zu werfen, um einen Überblick über die zahlreichen Funktionen erhalten.