PIL ist die Python Imaging Library, die dem Python-Interpreter Bildbearbeitungsfunktionen bietet. Es wurde von Fredrik Lundh und mehreren anderen Mitwirkenden entwickelt. Pillow ist der benutzerfreundliche PIL-Fork und eine benutzerfreundliche Bibliothek, die von Alex Clark und anderen Mitwirkenden entwickelt wurde. Wir werden mit Pillow zusammenarbeiten.
Installation:
- Linux: Geben Sie auf dem Linux-Terminal Folgendes ein:
pip install PillowPip über Terminal installieren:sudo apt-get update
sudo apt-get install python-pip - Windows: Herunterladen das entsprechende Pillow-Paket entsprechend Ihrer Python-Version. Stellen Sie sicher, dass Sie entsprechend Ihrer Python-Version herunterladen.
Wir werden hier mit dem Image-Modul arbeiten, das eine gleichnamige Klasse bereitstellt und viele Funktionen für die Arbeit an unseren Bildern bereitstellt. Um das Image-Modul zu importieren, sollte unser Code mit der folgenden Zeile beginnen:
from PIL import ImageOperationen mit Bildern:
- Öffnen Sie ein bestimmtes Bild aus einem Pfad: Python
#img = Image.open(path) # On successful execution of this statement # an object of Image type is returned and stored in img variable) try: img = Image.open(path) except IOError: pass # Use the above statement within try block as it can # raise an IOError if file cannot be found # or image cannot be opened.
- Größe des Bildes abrufen : Die erstellten Instanzen der Image-Klasse verfügen über viele Attribute. Eines ihrer nützlichen Attribute ist die Größe. Python
Einige andere Attribute sind: Image.width Image.height Image.format Image.info usw.from PIL import Image filename = 'image.webp' with Image.open(filename) as image: width height = image.size #Image.size gives a 2-tuple and the width height can be obtained
- Änderungen im Bild speichern: Um alle Änderungen, die Sie an der Bilddatei vorgenommen haben, zu speichern, müssen wir sowohl den Pfad als auch das Bildformat angeben. Python
img.save(path format) # format is optional if no format is specified #it is determined from the filename extension
- Ein Bild drehen: Die Bilddrehung benötigt den Winkel als Parameter, um das Bild zu drehen. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #Angle given img = img.rotate(180) #Saved in the same relative location img.save('rotated_picture.webp') except IOError: pass if __name__ == '__main__': main()
Hinweis: Als eines der Argumente der Rotationsmethode steht ein optionales Erweiterungsflag zur Verfügung, das, wenn es auf „true“ gesetzt ist, das Ausgabebild so erweitert, dass es groß genug ist, um das vollständig gedrehte Bild aufzunehmen. Wie im obigen Codeausschnitt zu sehen ist, habe ich einen relativen Pfad verwendet, bei dem sich mein Bild im selben Verzeichnis wie meine Python-Codedatei befindet. Es kann auch ein absoluter Pfad verwendet werden.
- Ein Bild zuschneiden: Image.crop(box) nimmt eine 4-Tupel-Pixelkoordinate (links oben, rechts unten) und gibt einen rechteckigen Bereich aus dem verwendeten Bild zurück. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size area = (0 0 width/2 height/2) img = img.crop(area) #Saved in the same relative location img.save('cropped_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Größe eines Bildes ändern: Image.resize(size) – Hier wird die Größe als 2-Tupel-Breite und -Höhe angegeben. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size img = img.resize((width/2 height/2)) #Saved in the same relative location img.save('resized_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Ein Bild in ein anderes Bild einfügen: Das zweite Argument kann ein 2-Tupel (Angabe der oberen linken Ecke) oder ein 4-Tupel (links oben rechts unten) sein – in diesem Fall muss die Größe des eingefügten Bildes mit der Größe dieses Boxbereichs übereinstimmen oder „Keine“, was (0 0) entspricht. Python
from PIL import Image def main(): try: #Relative Path #Image on which we want to paste img = Image.open('picture.webp') #Relative Path #Image which we want to paste img2 = Image.open('picture2.webp') img.paste(img2 (50 50)) #Saved in the same relative location img.save('pasted_picture.webp') except IOError: pass if __name__ == '__main__': main() ##An additional argument for an optional image mask image is also available.
- Ein Histogramm eines Bildes erhalten: Dadurch wird ein Histogramm des Bildes als Liste mit Pixelanzahlen zurückgegeben, eins für jedes Pixel im Bild. (Ein Histogramm eines Bildes ist eine grafische Darstellung der Tonverteilung in einem digitalen Bild. Es enthält alle in einem Bild enthaltenen Helligkeitswerte. Es stellt die Anzahl der Pixel für jeden Helligkeitswert dar. Es hilft bei der Vornahme der Belichtungseinstellungen.) aus PIL-Importbild Python
def main(): try: #Relative Path img = Image.open('picture.webp') #Getting histogram of image print img.histogram() except IOError: pass if __name__ == '__main__': main()
- Ein Bild transponieren: Diese Funktion gibt uns das Spiegelbild eines Bildes Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #transposing image transposed_img = img.transpose(Image.FLIP_LEFT_RIGHT) #Save transposed image transposed_img.save('transposed.webp') except IOError: pass if __name__ == '__main__': main()
- Teilen Sie ein Bild in einzelne Bänder auf: Durch das Teilen eines Bildes im RGB-Modus werden drei neue Bilder erstellt, die jeweils eine Kopie der ursprünglichen Einzelbänder enthalten. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #splitting the image print img.split() except IOError: pass if __name__ == '__main__': main()
- tobitmap: Konvertieren eines Bildes in eine X11-Bitmap (ein binäres Nur-Text-Bildformat). Es gibt eine Zeichenfolge zurück, die eine X11-Bitmap enthält. Sie kann nur für Bilder im Modus 1 verwendet werden, d. h. Schwarzweißbilder mit 1 Bit Pixel. aus PIL-Importbild Python
def main(): try: #Relative Path img = Image.open('picture.webp') print img.mode #converting image to bitmap print img.tobitmap() print type(img.tobitmap()) except IOError: pass if __name__ == '__main__': main()
- Miniaturansicht erstellen: Diese Methode erstellt eine Miniaturansicht des geöffneten Bildes. Es wird kein neues Bildobjekt zurückgegeben, sondern es werden direkte Änderungen am aktuell geöffneten Bildobjekt selbst vorgenommen. Wenn Sie das ursprüngliche Bildobjekt nicht ändern möchten, erstellen Sie eine Kopie und wenden Sie dann diese Methode an. Diese Methode bewertet auch, ob das Seitenverhältnis des Bildes entsprechend der übergebenen Größe beibehalten werden kann. aus PIL-Importbild Python
def main(): try: #Relative Path img = Image.open('picture.webp') #In-place modification img.thumbnail((200 200)) img.save('thumb.webp') except IOError: pass if __name__ == '__main__': main()