Heim  >  Artikel  >  Backend-Entwicklung  >  Wie komprimiere ich Bilder mit Python und PIL?

Wie komprimiere ich Bilder mit Python und PIL?

WBOY
WBOYnach vorne
2023-09-02 19:41:071123Durchsuche

Wie komprimiere ich Bilder mit Python und PIL?

Im heutigen digitalen Zeitalter sind Bilder zu einem wesentlichen Bestandteil unseres Lebens geworden. Sie spielen eine wichtige und sichtbare Rolle bei der Kommunikation und dem Ausdruck auf verschiedenen Plattformen, von sozialen Medien bis hin zu Websites. Allerdings können qualitativ hochwertige Bilder viel Speicherplatz beanspruchen und zu langsameren Ladezeiten der Website und längeren Upload-Zeiten führen. In diesem Fall kommt die Bildkomprimierung zum Einsatz. Indem Sie die Größe Ihrer Bilder reduzieren, sorgen Sie für schnellere Ladezeiten, geringere Bandbreitennutzung und mehr Speicherplatz.

In diesem Artikel betrachten wir den Prozess der Bildkomprimierung mit Python und PIL. PIL, auch bekannt als Python Imaging Library. Es handelt sich um eine sehr nützliche und wichtige Bibliothek in Python, die verschiedene Bilddateiformate öffnen, bearbeiten und speichern kann. Indem wir die Fähigkeiten dieser Bibliothek beherrschen, können wir Bilder problemlos komprimieren und von den Vorteilen schnellerer Ladezeiten und weniger Speicherplatz profitieren.

Bevor wir uns mit dem Code befassen, werfen wir einen kurzen Blick auf die verschiedenen Arten der Bildkomprimierung.

Arten der Bildkomprimierung

Es gibt zwei Hauptarten der Bildkomprimierung: verlustbehaftet und verlustfrei.

Verlustbehaftete Komprimierung: Verlustbehaftete Komprimierung ist eine Komprimierungsart, bei der einige Daten während des Komprimierungsprozesses verloren gehen. Das bedeutet, dass das Bild beim Dekomprimieren nicht genau mit dem Originalbild übereinstimmt. Für das menschliche Auge ist dieser Unterschied jedoch meist nicht wahrnehmbar. Beispiele für verlustbehaftete Komprimierung sind JPEG und GIF.

Verlustfreie Komprimierung: Verlustfreie Komprimierung ist eine Komprimierungsart, bei der während des Komprimierungsprozesses keine Daten verloren gehen. Das heißt, wenn Sie das Bild dekomprimieren, ist es genau das gleiche wie das Originalbild. Beispiele für verlustfreie Komprimierung sind PNG und TIFF.

Da wir nun die verschiedenen Arten der Bildkomprimierung verstanden haben, gehen wir zum Code über.

So komprimieren Sie Bilder mit Python und PIL

Schritt 1: PIL installieren

Der erste Schritt besteht darin, die PIL-Bibliothek zu installieren. Hierfür können Sie pip verwenden. Öffnen Sie ein Terminal oder eine Eingabeaufforderung und geben Sie den folgenden Befehl ein:

pip install Pillow

Erfolgsmeldung

Collecting Pillow
  Downloading Pillow-8.4.0-cp39-cp39-win_amd64.whl (3.2 MB)
     |████████████████████████████████| 3.2 MB 2.1 MB/s
Installing collected packages: Pillow
Successfully installed Pillow-8.4.0

Schritt 2: Erforderliche Bibliotheken importieren

Nach der Installation von PIL müssen Sie die erforderlichen Bibliotheken in Ihr Python-Programm importieren. Fügen Sie dazu die folgende Codezeile am Anfang der Python-Datei hinzu:

from PIL import Image
import os

Schritt 3: Bild laden

Nachdem wir nun die erforderlichen Bibliotheken importiert haben, laden wir die Bilder, die wir komprimieren möchten. Hierzu können wir die Methode Image.open() aus der PIL-Bibliothek verwenden.

image = Image.open('image.jpg')

Dieser Code öffnet ein Bild mit dem Namen „image.jpg“ und weist es der Variablen „image“ zu.

Schritt 4: Größe des Bildes ändern

Nachdem wir das Bild geladen haben, müssen wir die Größe ändern, um die Dateigröße zu reduzieren. Hierzu können wir die resize()-Methode aus dem Image-Modul verwenden.

width, height = image.size
new_size = (width//2, height//2)
resized_image = image.resize(new_size)

Dieser Code ändert die Größe des Bildes auf die Hälfte seiner Originalgröße. Sie können die Größe des Bildes nach Bedarf ändern.

Schritt 5: Speichern Sie das komprimierte Bild

Nachdem wir die Bildgröße geändert haben, müssen wir das komprimierte Bild speichern. Dazu können wir die Methode save() aus dem Image-Modul verwenden.

resized_image.save('compressed_image.jpg', optimize=True, quality=50)

Nachdem wir das Bild komprimiert haben, müssen wir es als neue Datei speichern. Dieser Code speichert das komprimierte Bild als Datei mit dem Namen „compressed_image.jpg“. Mit dem Parameter „optimize“ können wir sicherstellen, dass das Bild für das Netzwerk optimiert ist. Darüber hinaus können wir den Parameter „Qualität“ verwenden, um die Qualität des Bildes nach Bedarf anzupassen.

Schritt 6: Komprimiertes Bild überprüfen

Abschließend müssen wir überprüfen, ob das komprimierte Bild korrekt gespeichert wurde. Dazu können wir die Dateigrößen der Original- und komprimierten Bilder vergleichen.

original_size = os.path.getsize('image.jpg')
compressed_size = os.path.getsize('compressed_image.jpg')

print("Original Size: ", original_size)
print("Compressed Size: ", compressed_size)

Dieser Code gibt die Dateigröße des Originalbilds und des komprimierten Bilds aus. Sie können überprüfen, ob das komprimierte Bild kleiner als das Originalbild ist.

Dies ist der vollständige Implementierungscode

Beispiel

from PIL import Image
import os

image = Image.open('image.jpg')

width, height = image.size
new_size = (width//2, height//2)
resized_image = image.resize(new_size)

resized_image.save('compressed_image.jpg', optimize=True, quality=50)

original_size = os.path.getsize('image.jpg')
compressed_size = os.path.getsize('compressed_image.jpg')

print("Original Size: ", original_size)
print("Compressed Size: ", compressed_size)

Ausgabe

Original Size:  1234567
Compressed Size:  543210

Bitte beachten Sie, dass die tatsächliche Dateigröße vom Eingabebild abhängt, das für den Code verwendet wird. Dies ist nur ein Beispiel.

Fazit

Zusammenfassend haben wir den Unterschied zwischen verlustbehafteter und verlustfreier Komprimierung besprochen und erklärt, wie letztere die Bildqualität besser aufrechterhält, aber mehr Platz beansprucht. Anschließend folgten wir einer Schritt-für-Schritt-Anleitung zum Komprimieren von Bildern mit PIL in Python. Wir haben gelernt, wie man die Größe von Bildern ändert und sie in einem komprimierten Format speichert, sowie einige Best Practices, um die besten Ergebnisse zu erzielen.

Indem Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie Ihre Bilder ganz einfach komprimieren und für die Webnutzung optimieren. Sie können die Qualität und Größe komprimierter Bilder anpassen, um das richtige Gleichgewicht zwischen Bildqualität und Dateigröße zu erreichen. Ganz gleich, ob Sie Website-Entwickler oder Hobbyfotograf sind: Die Beherrschung der Bildkomprimierung ist eine wertvolle Fähigkeit, die Ihre digitale Präsenz verbessern kann.

Das obige ist der detaillierte Inhalt vonWie komprimiere ich Bilder mit Python und PIL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen