我是 Python 的新手,我正在尝试弄清楚如何从 URL 读取图像。
这是我当前的代码:
from PIL import Image
import urllib.request, io
URL = 'http://www.w3schools.com/css/trolltunga.jpg'
with urllib.request.urlopen(URL) as url:
s = url.read()
Image.open(s)
我收到以下错误:
C:\python>python image.py
Traceback (most recent call last):
File "image.py", line 8, in <module>
Image.open(s)
File "C:\Anaconda3\lib\site-packages\PIL\Image.py", line 2272, in open
fp = builtins.open(filename, "rb")
ValueError: embedded null byte
我不知道这意味着什么。我究竟做错了什么?
原文由 connoraw 发布,翻译遵循 CC BY-SA 4.0 许可协议
Image.open()
期望filename
或file-like object
不是file data
您可以在本地写入图像 - 即
"temp.jpg"
- 然后打开它或者您可以使用
io
模块在内存中创建file-like object
—编辑:2022
Because
urlopen()
also givesfile-like object
so you can even skipio
and use directlyurl
(without.read()
) inImage.open()