Wie lade ich Bilder von Web-URLs in PIL-Objekte in Python?

Susan Sarandon
Freigeben: 2024-11-15 14:35:03
Original
479 Leute haben es durchsucht

How to Load Images from Web URLs into PIL Objects in Python?

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage