【发布时间】:2020-08-16 00:56:59
【问题描述】:
目前,我的代码可以循环显示图像列表,并且可以在一定时间内显示每个图像。但是,它只打开一个小窗口来显示图像,甚至没有填满整个窗口。我想全屏显示每个图像,有什么方法可以做到这一点?
此外,该脚本仅适用于 GIF,有什么方法可以更改它以接受其他类型的文件,例如 JPEG。
我的代码是:
from itertools import cycle
import Tkinter as tk
class App(tk.Tk):
def __init__(self, image_files, delay):
tk.Tk.__init__(self)
w, h = self.winfo_screenwidth(), self.winfo_screenheight()
self.overrideredirect(1)
self.geometry("%dx%d+0+0" % (w, h))
self.delay = delay
self.pictures = cycle((tk.PhotoImage(file=image), image)
for image in image_files)
self.picture_display = tk.Label(self)
self.picture_display.pack()
def show_slides(self):
img_object, img_name = next(self.pictures)
self.picture_display.config(image=img_object)
self.title(img_name)
self.after(self.delay, self.show_slides)
def run(self):
self.mainloop()
delay = 3500
image_files = ["/media/pi/RASPBERRY/object1.gif",
"/media/pi/RASPBERRY/object12ndImage.gif",
"/media/pi/RASPBERRY/object13rdImage.gif",
"/media/pi/RASPBERRY/object14thImage.gif"]
app = App(image_files, delay)
app.show_slides()
app.run()
【问题讨论】:
-
对您的两个问题都是肯定的。您可以调整图像大小以适应或填充它们所在的框架,还可以使用
PIL(Pillow) 库来处理其他图像格式,例如 jpeg。
标签: python tkinter slideshow fullscreen