枕头 OSError:无法识别图像文件 <_io.BytesIO 对象位于 0x02345ED8>

Jro*_*roS 5 python pillow

我试图从 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)

仅显示最后一个图像,但所有文本均在框架中正确显示。如果有人可以帮忙,我有点卡住了

问候,

联合罗斯