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 サイトの他の関連記事を参照してください。