Bilddaten aus Web-URLs in Python lesen
Das Abrufen von Bilddaten aus einer lokalen Datei mithilfe der Python Imaging Library (PIL) ist unkompliziert. Beim Zugriff auf Bilder, die auf Remote-URLs gehostet werden, treten jedoch Herausforderungen auf. Dieser Artikel bietet eine Lösung für die effiziente Erstellung von PIL-Bildobjekten aus URL-Quellen, wodurch die Notwendigkeit der Speicherung von Zwischendateien entfällt.
Das Hauptproblem bei der Verwendung von Image.open(urlopen(url)) ist die Nichtverfügbarkeit der Suche ()-Methode für dateiähnliche Objekte. Um dieses Problem zu beheben, könnte man Image.open(urlopen(url).read()) versuchen, aber auch dieser Ansatz schlägt fehl.
Glücklicherweise gibt es in Python 3 eine praktikable Lösung. Durch die Verwendung der BytesIO-Klasse von Mit dem io-Modul können Sie direkt mit den von der URL abgerufenen Bilddaten arbeiten. So können Sie dies erreichen:
from PIL import Image import requests from io import BytesIO response = requests.get(url) img = Image.open(BytesIO(response.content))
Dieses Snippet verwendet zunächst die Anforderungsbibliothek, um die Bilddaten von der angegebenen URL abzurufen. Die BytesIO-Klasse verpackt dann den Rohinhalt in ein dateiähnliches Objekt, das direkt an Image.open() übergeben werden kann, wodurch ein PIL-Bildobjekt erstellt wird.
Durch die Nutzung dieses Ansatzes können Sie Bilddaten effizient laden URLs, ohne dass temporäre Dateien erstellt werden müssen, wodurch Ihre Bildverarbeitungs-Workflows optimiert werden.
Das obige ist der detaillierte Inhalt vonWie lade ich Bilder von Web-URLs in PIL-Objekte in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!