1. ホーム
  2. パイソン

[解決済み】PythonでURLから画像データを読み込むには?

2022-04-04 18:10:18

質問

ローカルファイルを扱っているときは、やろうとすることはとても簡単なのですが、問題はこれをリモートURLで行おうとしたときです。

基本的に、私はURLから取得したファイルからPIL画像オブジェクトを作成しようとしています。 もちろん、URLを取得して一時ファイルに保存し、それを開いてイメージ・オブジェクトにすることもできますが、非常に非効率的に感じます。

こんな感じです。

Image.open(urlopen(url))

という文句を言いながらフレークアウトします。 seek() が使えないので、こうしてみました。

Image.open(urlopen(url).read())

しかし、それもうまくいきませんでした。 それとも、一時ファイルに書き込むのが、この種のことを行う際の一般的な方法なのでしょうか?

解決方法は?

Python3では以下のように動作します。

from PIL import Image
import requests

im = Image.open(requests.get(url, stream=True).raw)

参考文献