Skip to content

Wie verwendet man Pillow (PIL: Python Imaging Library)

Python

Pillow ist eine von PIL (Python Image Library) abgeleitete Bildverarbeitungsbibliothek. Da sich PIL nicht mehr in der Entwicklung befindet, wird Pillow jetzt weit verbreitet verwendet.

Pillow ist der „freundliche PIL-Gabel“ von Alex Clark and Contributors. PIL ist die Python Imaging Library von Fredrik Lundh und Contributors.
Kissen — Kissen (PIL Fork) 4.2.1 Dokumentation

Obwohl eine erweiterte Bildverarbeitung (Gesichtserkennung, optischer Fluss usw.) wie OpenCV nicht durchgeführt werden kann, kann eine einfache Bildverarbeitung wie Größenänderung (Skalieren), Drehen und Trimmen (Teilausschnitt) durchgeführt werden.

Da Pillow und einfacher verständlicher ist als OpenCV, ist es besser, es je Zweck zu verwenden.

Dieser Artikel hat folgenden Inhalt.

  • Installieren
  • Grundlegende Verwendung
    • Bild laden, bearbeiten, speichern
    • Zeichnung
  • Weitere Verarbeitungsbeispiele

Unter dem following Link FINDEN SIE Einzelne Artikel, in denen verschiedene Prozesse wie Größenänderung und Zuschneiden erläutert werden.

Installieren

Kissen können durch Pip installiert werden.

Kopfkissen und PIL können nicht nebeneinander bestehen. Wenn Sie beide installiert haben, sollten Sie beide deinstallieren und nur eines neu installieren.

Wenn Sie nicht wissen, was installiert ist, können Sie es wie folgt überprüfen:

Deinstallieren:

$ pip uninstall 

Beachten Sie, dass SIE bei Verwendung von Python 3 abhängig von Ihrer Umgebung möglicherweise pip3 anstelle von pip verwenden müssen.

Siehe den following Artikel für praktische Operationen von pip.

Grundlegende Verwendung

Das offizielle Dokument ist leicht verständlich.

Bild laden, bearbeiten, speichern

Lesen Sie die Bilddatei. Sie, dass der Name des zu importierenden Pakets PIL und nicht Kissen ist.

from PIL import Image, ImageFilter

im = Image.open('data/src/lenna_square.png')

Erhalten Sie Metainformationen wie Format, Größe (Breite, Höhe), Modus usw. Die Größe wird durch (Breite, Höhe) wiedergegeben.

print(im.format, im.size, im.mode)
# PNG (512, 512) RGB

Holen Sie sich den Mindest- und Höchstwert jeder RGB-Farbe.

print(im.getextrema()) 
# ((54, 255), (3, 248), (8, 225))

Ruft den Pixelwert der angegebenen Koordinate ab. Der Koordinatenursprung (0, 0) ist oben links.

print(im.getpixel((256, 256)))
# (180, 65, 72)

Als Beispiel WIRD Eine Verarbeitung Einer Graustufenumwandlung (convert(‚L‘)), einer Drehung um 90 Grad (rotate(90)) und einer Gaußschen Unschärfe (filter()) durchgeführt.

new_im = im.convert('L').rotate(90).filter(ImageFilter.GaussianBlur())

Zeigen Sie Bilder mit der Standardsoftware des Betriebssystems an.

Speichern Sie das Bild.

new_im.save('data/dst/lenna_square_pillow.jpg', quality=95)

Beim Speichern mit save() unterscheiden sich die Parameter je nach Extension. Nichts finden Sie unter Bilddateiformat . Bei jpg können Sie die Qualität mit dem Parameter quality festlegen. Der Standardwert ist 75 für 1 (niedrigste) bis 95 (höchste).

Das Originalbild und das Bild nach der Verarbeitung sind wie folgt.

Originalverarbeitet

Zeichnung

Sie können auch Figuren zeichnen.

Verwenden Sie das ImageDraw-Modul . Siehe auch den following Artikel für Details.

Erstellen Sie zunächst ein solides Bild. Geben Sie die Größe im zweiten Argument und die RGB-Farben im dritten Argument an.

from PIL import Image, ImageDraw, ImageFont

im = Image.new("RGB", (512, 512), (128, 128, 128))

Geben Sie das Image-Objekt als Argument an und erstellen Sie ein Draw-Objekt.

draw = ImageDraw.Draw(im)

Zeichnen Sie gerade Linien, Rechtecke und Ellipsen.

draw.line((0, im.height, im.width, 0), fill=(255, 0, 0), width=8)
draw.rectangle((100, 100, 200, 200), fill=(0, 255, 0))
draw.ellipse((250, 300, 450, 400), fill=(0, 0, 255))

Zeichnet Text mit der angegebenen Schriftart.

font = ImageFont.truetype('/Library/Fonts/Arial Bold.ttf', 48)
draw.multiline_text((0, 0), 'Pillow sample', fill=(0, 0, 0), font=font)

Das Ergebnis ist wie folgt:

Kissen_Probe

In diesem Beispiel wird zuerst ein festes Bild erzeugt, aber es ist auch möglich, eine Bilddatei zu lesen und darauf Figuren und Text zu zeichnen.

Weitere Verarbeitungsbeispiele

Hier sind einige Beispiele für die Bildverarbeitung mit Pillow (PIL). Halbleiter und Beispielcode finden Sie in den verlinkten Artikeln.

Fügen Sie ein weiteres Bild in das Bild ein

Fügen Sie ein weiteres Bild auf dem Hintergrundbild ein.

Neben Rechtecken ist es auch möglich, mithilfe eines Maskenbildes beliebige Formen auszuschneiden und einzufügen, z. B. einen Kreis.

Pillow Image.paste Ergebnis Kreismaskenunschärfe

Kombinieren Sie zwei Bilder

Kombinieren Sie zwei Bilder derselben Größe.

Sie können nach einem Maskenbild komponieren. Ein Gradationsbild kann als Maske used Werden, um ein Bild zu erstellen, das sich täglich ändert.

Zusammengesetzte Abstufung von Python Pillow

Verketten Sie mehrere Bilder

Mehrere Bilder können vertikal oder horizontal angeordnet werden, um ein verkettetes Bild zu erstellen.

Größe der Python-Kissen-Concat-Fliese ändern

Transparentes PNG-Bild erstellen

Erstellen Sie ein transparentes PNG-Bild mit einem Alphakanal.

Diese kann auch in beliebiger Form maskiert werden.

Python Kissen putalpha-Kreis

Negativ-Positiv-Inversion (Pixelwert invertieren)

Es wird ein Negativ-Positiv-Umkehrbild (Bild mit invertierten Pixelwerten) erzeugt.

Kopfkissen umkehren lena

Erstellen Sie kreisförmige oder quadratische Miniaturbilder

Erstellen Sie Miniaturbilder aus großen Bildern.

Sie können die Mitte ausschneiden, Ränder hinzufügen, um es beliebig groß zu machen, oder es kreisförmig zu machen. Es ist auch möglich, mehrere Bilder gleichzeitig zu verarbeiten.

Kissen-Miniaturansicht max.  quadratisch
Kopfkissen-Miniaturansicht quadratisch erweitern
Kissen-Thumbnail-Kreis transparent

Animiertes GIF erstellen

Sie können animierte GIF-Bilder sowie JPG- und PNG-Dateien erstellen.

Kissen gif