微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我用 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 程序来保存图像。 我这样保存它们:

with open(r"example.jpg",'wb') as f:

    f.write(list_arrays[0])

然后使用 PhotoImage 显示该图像:

root = tk.Tk()

image = PIL.Image.open("example.jpg")

photo = PIL.ImageTk.PhotoImage(image)

ttk.Label(root,image=photo).pack()

root.mainloop()

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。