Python 如何从字节数组在tkinter中显示图像

Python 如何从字节数组在tkinter中显示图像,python,arrays,tkinter,tkinter-canvas,photoimage,Python,Arrays,Tkinter,Tkinter Canvas,Photoimage,我用aiohttp从网络上抓取了一些图片,并将它们保存在一个列表中,列表中填充了如下数组('\xe25\xd7\xeeP{\x08\x18-6\x809\xabQ1LQ\xf0\x02hC\x11\x97*\xc8…') 我试图用画布和Photoimage显示图片,但它不起作用 这里是我的一些代码片段,提前谢谢,对不起我的英语 bytesfoto=self.fotobytes[indice] img = ImageTk.PhotoImage(Image.open(BytesIO(byte

我用aiohttp从网络上抓取了一些图片,并将它们保存在一个列表中,列表中填充了如下数组('\xe25\xd7\xeeP{\x08\x18-6\x809\xabQ1LQ\xf0\x02hC\x11\x97*\xc8…')

我试图用画布和Photoimage显示图片,但它不起作用

这里是我的一些代码片段,提前谢谢,对不起我的英语

bytesfoto=self.fotobytes[indice]
    img = ImageTk.PhotoImage(Image.open(BytesIO(bytesfoto)))
    self.canvas.create_image(20, 20, anchor=NW, image=img)



 self.canvas = Canvas(width=300, height=300)

    self.canvas.grid(row=2, column=1)

有一种解决方法,但不是很好:您可以将每个图像保存为jpg,然后使用PIL重新打开,然后使用Photoimage显示,但这需要python程序来保存图像。 我这样保存它们:

以open(r“example.jpg”,“wb”)作为f:
f、 写入(列出数组[0])
然后使用PhotoImage显示该图像:

root=tk.tk()
image=PIL.image.open(“example.jpg”)
photo=PIL.ImageTk.PhotoImage(图像)
Label(root,image=photo).pack()
root.mainloop()

这不是一个解决方案,而是一个变通方法,但我希望它能有所帮助。

有一种变通方法,但不是很好:您可以将每个图像保存为jpg,然后使用PIL重新打开,然后使用Photoimage显示,但这需要python程序来保存图像。 我这样保存它们:

以open(r“example.jpg”,“wb”)作为f:
f、 写入(列出数组[0])
然后使用PhotoImage显示该图像:

root=tk.tk()
image=PIL.image.open(“example.jpg”)
photo=PIL.ImageTk.PhotoImage(图像)
Label(root,image=photo).pack()
root.mainloop()

这不是一个解决方案,而是一个解决方案,但我希望它能有所帮助

请提供整个(但非常小)项目的所有数据问题中的图像。字节数据应该类似于
b'....
。图像在数据的开头也有一些签名,PNG:
b'\x89PNG…
,JPG:
b'\xff\xd8\xff\xe0\x00\x10JFIF…
和GIF:
b'GIF89a…
。因此问题中显示的数据不太可能是图像数据。请提供所有数据整个系统的数据(但非常小)问题中的图像。字节数据应该类似于
b'....
。图像在数据的开头也有一些签名,PNG:
b'\x89PNG…
,JPG:
b'\xff\xd8\xff\xe0\x00\x10JFIF…
和GIF:
b'GIF89a…
。因此问题中显示的数据不太可能是图像数据。