如何在不保存到硬盘的情况下将图像加载到标签中 python Tkinter
How to load a image into a label without saving to hard drive python Tkinter
我正在做一个项目,我有一个列表,里面有几个 StringIO
。我想将它们加载到 Tkinter 标签中,但出现此错误:IOError: cannot identify image file
。我明白这意味着它找不到图像文件。但是如何在不保存到硬盘的情况下显示图像?
这是我的代码:
from PIL import ImageTk, Image as im
from cStringIO import StringIO
from threading import Thread
from Tkinter import *
import socket
import os
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.pack(fill=BOTH)
self.images = []
self.create_Browse()
def create_Browse(self):
for item in self.images:
img = ImageTk.PhotoImage(im.open(item))
label = Label(self, image=img)
label.image = img
label.pack(side=TOP)
root = Tk()
root.title("None")
root.resizable(0,0)
root.geometry("650x500")
root.iconbitmap("Files/System_Files/icon.ico")
app = Application(root)
root.mainloop()
这只是一个例子。 self.images
列表将包含 StringIO
。
您可能需要在创建图像之前重置您的 StringIO 对象:
for item in self.images:
item.seek(0) # set file position back to the start
img = ImageTk.PhotoImage(Image.open(item))
我正在做一个项目,我有一个列表,里面有几个 StringIO
。我想将它们加载到 Tkinter 标签中,但出现此错误:IOError: cannot identify image file
。我明白这意味着它找不到图像文件。但是如何在不保存到硬盘的情况下显示图像?
这是我的代码:
from PIL import ImageTk, Image as im
from cStringIO import StringIO
from threading import Thread
from Tkinter import *
import socket
import os
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.pack(fill=BOTH)
self.images = []
self.create_Browse()
def create_Browse(self):
for item in self.images:
img = ImageTk.PhotoImage(im.open(item))
label = Label(self, image=img)
label.image = img
label.pack(side=TOP)
root = Tk()
root.title("None")
root.resizable(0,0)
root.geometry("650x500")
root.iconbitmap("Files/System_Files/icon.ico")
app = Application(root)
root.mainloop()
这只是一个例子。 self.images
列表将包含 StringIO
。
您可能需要在创建图像之前重置您的 StringIO 对象:
for item in self.images:
item.seek(0) # set file position back to the start
img = ImageTk.PhotoImage(Image.open(item))