Maison >développement back-end >Tutoriel Python >Comment charger des images à partir d'URL Web dans des objets PIL en Python ?

Comment charger des images à partir d'URL Web dans des objets PIL en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-15 14:35:03531parcourir

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

Lecture des données d'image à partir d'URL Web en Python

Récupérer des données d'image à partir d'un fichier local à l'aide de la bibliothèque d'images Python (PIL) est simple. Cependant, des défis surviennent lors de l’accès aux images hébergées sur des URL distantes. Cet article fournira une solution pour créer efficacement des objets image PIL à partir de sources URL, éliminant ainsi le besoin de stocker des fichiers intermédiaires.

Le principal problème lié à l'utilisation de Image.open(urlopen(url)) est l'indisponibilité de la recherche. () pour les objets de type fichier. Pour résoudre ce problème, on pourrait tenter Image.open(urlopen(url).read()), mais cette approche échoue également.

Heureusement, il existe une solution viable dans Python 3. En utilisant la classe BytesIO de le module io, vous pouvez travailler directement avec les données d'image récupérées à partir de l'URL. Voici comment y parvenir :

from PIL import Image
import requests
from io import BytesIO

response = requests.get(url)
img = Image.open(BytesIO(response.content))

Cet extrait utilise d'abord la bibliothèque de requêtes pour récupérer les données d'image à partir de l'URL spécifiée. La classe BytesIO enveloppe ensuite le contenu brut dans un objet de type fichier qui peut être directement transmis à Image.open(), créant ainsi un objet image PIL.

En tirant parti de cette approche, vous pouvez charger efficacement des données d'image à partir de URL sans avoir besoin de créer de fichiers temporaires, rationalisant ainsi vos flux de travail de traitement d'image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn