我试图从 http 请求中获取 jpeg、gif 等,但出现错误。这是代码的一部分:
def printimg(url):
http = httppoolmgr()
file = http.request('GET',url).read()
r_data = binascii.unhexlify(file)
stream = io.BytesIO(r_data)
img = Image.open(stream)
#img = Image.open(file)
return img
Run Code Online (Sandbox Code Playgroud)
返回的错误代码是:
File "C:\Python34\lib\site-packages\pillow-2.5.3-py3.4-win32.egg\PIL\Image.py"
, line 2256, in open
OSError: cannot identify image file <_io.BytesIO object at 0x02345ED8>
Run Code Online (Sandbox Code Playgroud)
有人已经遇到过这种问题吗?
Jro*_*roS -1
我用以下代码替换图像的检索部分
response = requests.get(url)
img = Image.open(io.BytesIO(response.content))
img.save("picture/%s.png" % row)
self.foto = PhotoImage(file="picture/%s.png" % row)
Label(self.frame, image=self.foto, name=str(row)).grid(row=row, column=0, sticky=W)
Run Code Online (Sandbox Code Playgroud)
现在打开图像或其他东西根本没有错误,现在我遇到了以下代码的其他问题:
def populate(self):
http = httppoolmgr()
array = xmltohash(getrack(http,'618cd2a4a2a1740a9f46e4f367ef88f3'))
for row in range(len(array)):
url = str((array[row]),"utf-8").split("$#$")[3]
title = str((array[row]),"utf-8").split("$#$")[1]
response = requests.get(url)
img = Image.open(io.BytesIO(response.content))
img.save("picture/%s.png" % row)
self.foto = PhotoImage(file="picture/%s.png" % row)
Label(self.frame, image=self.foto, name=str(row)).grid(row=row, column=0, sticky=W)
t=str((array[row]),"utf-8").split("$#$")[1]
Label(self.frame, text=t).grid(row=row, column=1, sticky=W)
Run Code Online (Sandbox Code Playgroud)
仅显示最后一个图像,但所有文本均在框架中正确显示。如果有人可以帮忙,我有点卡住了
问候,
联合罗斯