Pillow - Grafikbearbeitung mit Python

  Ralf Hersel   Lesezeit: 4 Minuten

Mit der Bibliothek lassen sich vielfältige Bildbearbeitungen in Python durchführen.

pillow - grafikbearbeitung mit python

Wenn wir über programmatische Grafikbearbeitung reden, fällt allen Leser:innen ein Begriff ein. Na, welcher ist es? Es ist natürlich ImageMagick. Mit dem Grafik-Multitalent kann man auf der Kommandozeile alle erdenklichen Bildmanipulationen durchführen. Wer ähnliche Funktionen aus einem Python-Skript heraus anwenden möchte, kann die Bibliothek Pillow einsetzen.

Pillow ist ein freundlicher PIL-Fork von Alex Clark und Mitwirkenden. PIL ist die Python Imaging Library von Fredrik Lundh und Mitwirkenden. Anhand dreier Beispiele, möchte ich die Verwendung von Pillow beschreiben:

Bevor man mit Pillow loslegt, kann man im Paketmanager der eigenen Distribution überprüfen, ob die Library bereits installiert ist. Bei Manjaro ist das der Fall (python-pillow). Ausserdem kann mit dem Befehl pip list nachgesehen werden, ob man Pillow bereits über den Python Paketmanager pip (PIP installs packages) installiert hat. Falls dem nicht so ist, erfolg die Installation wie folgt: python3 -m pip install --upgrade Pillow

Nun kann die Pillow Bibliothek in Python-Skripten verwendet werden. Dann erzeugt man ein Image-Objekt, lädt ein bestehendes Bild und zeigt zum Beispiel dessen Grösse und Farbmodus an:

from PIL import Image
im = Image.open("gnulinuxch.png")
print(im.format, im.size, im.mode)
PNG (160, 240) RGBA

Mit dem Befehl im.show() kann das Bild angezeigt werden. Dafür wird der Standardbildbetrachter verwendet.

Im nächsten Beispiel erstelle ich einen Bildausschnitt. Dafür wird ein auszuschneidendes Rechteck definiert und mittels crop auf das Bild angewandt. Mit save speichert man den Bildausschnitt unter einem neuen Namen:

region = im.crop((0,0,110,110))
region.save("gnu.png")

Im dritten Beispiel sieht man, wie Bilder gespiegelt oder gedreht werden können:

out = im.transpose(Image.Transpose.FLIP_LEFT_RIGHT)
out = im.transpose(Image.Transpose.FLIP_TOP_BOTTOM)
out = im.transpose(Image.Transpose.ROTATE_90)
out = im.transpose(Image.Transpose.ROTATE_180)
out = im.transpose(Image.Transpose.ROTATE_270)

Die von Pillow bereitgestellten Funktionen gehen natürlich weit über das hinaus, was in diesen einfachen Beispielen gezeigt wird. Man erkennt jedoch gut, wie das Arbeiten mit der Library funktioniert. Ein Blick in das Handbuch von Pillow erweitert den ersten Eindruck.

Quelle: https://pillow.readthedocs.io/en/stable/

Tags

Python, Bild, PIL, Bearbeitung, Pillow, Library, Beispiel, Bildausschnitt

Es wurden noch keine Kommentare verfasst, sei der erste!