ホームページ  >  記事  >  バックエンド開発  >  Python で Web URL から PIL オブジェクトに画像をロードするにはどうすればよいですか?

Python で Web URL から PIL オブジェクトに画像をロードするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-15 14:35:03451ブラウズ

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

Python で Web URL から画像データを読み取る

Python Imaging Library (PIL) を使用してローカル ファイルから画像データを取得するのは簡単です。ただし、リモート URL でホストされている画像にアクセスするときに問題が発生します。この記事では、URL ソースから PIL 画像オブジェクトを効率的に作成し、中間ファイルを保存する必要をなくすためのソリューションを提供します。

Image.open(urlopen(url)) の使用に関する主な問題は、シークが利用できないことです。ファイルのようなオブジェクトの () メソッド。これに対処するには、Image.open(urlopen(url).read()) を試みるかもしれませんが、このアプローチも失敗します。

幸いなことに、Python 3 には実行可能な解決策が存在します。 io モジュールを使用すると、URL から取得した画像データを直接操作できます。これを実現する方法は次のとおりです。

from PIL import Image
import requests
from io import BytesIO

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

このスニペットは、まずリクエスト ライブラリを使用して、指定された URL から画像データを取得します。 BytesIO クラスは、生のコンテンツを Image.open() に直接渡すことができるファイルのようなオブジェクトにラップし、PIL 画像オブジェクトを作成します。

このアプローチを利用することで、画像データを効率的にロードできます。一時ファイルを作成する必要のない URL により、画像処理ワークフローが合理化されます。

以上がPython で Web URL から PIL オブジェクトに画像をロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。